C++ | Leetcode C++题解之第214题最短回文串

news/2024/7/8 7:48:14 标签: C++, Leetcode, 题解

题目:

题解

class Solution {
public:
    string shortestPalindrome(string s) {
        int n = s.size();
        vector<int> fail(n, -1);
        for (int i = 1; i < n; ++i) {
            int j = fail[i - 1];
            while (j != -1 && s[j + 1] != s[i]) {
                j = fail[j];
            }
            if (s[j + 1] == s[i]) {
                fail[i] = j + 1;
            }
        }
        int best = -1;
        for (int i = n - 1; i >= 0; --i) {
            while (best != -1 && s[best + 1] != s[i]) {
                best = fail[best];
            }
            if (s[best + 1] == s[i]) {
                ++best;
            }
        }
        string add = (best == n - 1 ? "" : s.substr(best + 1, n));
        reverse(add.begin(), add.end());
        return add + s;
    }
};

http://www.niftyadmin.cn/n/5536859.html

相关文章

Vbus 和 Vbat

在嵌入式系统开发中&#xff0c;Vbus 和 Vbat 是两个不同的电源相关术语&#xff0c;它们的区别主要在于它们的用途和连接的电源类型。 Vbus 定义: Vbus 通常是指 USB 总线电压。在 USB 2.0 中&#xff0c;Vbus 通常为 5V 电源。用途: Vbus 提供电源给 USB 设备&#xff0c;确…

3.用户程序与驱动交互

驱动程序请使用第二章https://blog.csdn.net/chenhequanlalala/article/details/140034424 用户app与驱动交互最常见的做法是insmod驱动后&#xff0c;生成一个设备节点&#xff0c;app通过open&#xff0c;read等系统调用去操作这个设备节点&#xff0c;这里先用mknode命令调…

arm_uart4实验

#include "uart4.h" //UART //初始化 void hal_uart4_init() { //rcc_init //…

C#的多线程UI窗体控件显示方案

在C#中&#xff0c;特别是在使用Windows窗体&#xff08;WinForms&#xff09;或WPF&#xff08;Windows Presentation Foundation&#xff09;进行UI开发时&#xff0c;处理多线程与UI控件的交互需要特别小心。由于UI控件不是线程安全的&#xff0c;直接从非UI线程&#xff08…

VS Code解释及快捷键

一、VS Code Visual Studio Code&#xff08;简称 VS Code&#xff09;是由微软开发的一款免费、开源的代码编辑器。它具有丰富的功能和扩展性&#xff0c;广泛应用于各种编程语言的开发环境。以下是对 VS Code 的详细介绍&#xff1a; 主要特性 1. 跨平台 VS Code 支持 Wi…

人员定位系统方案的定制,主要明确的系统功能有哪几部分?

人员定位系统对于安全监管和工作效率有很大的帮助&#xff0c;现在&#xff0c;不同领域也开始定制了专门的人员定位系统方案&#xff0c;那么&#xff0c;这一系统在定制之前&#xff0c;需要明确的系统功能主要包含了哪些部分呢? 一、首先是人员的精确定位功能 需要做到精…

java解析请求的字符串参数Content-Disposition: form-data;和拼接的键值对

项目场景&#xff1a; 获取到http请求的参数&#xff0c;已经被字符串接收了&#xff0c;需求是需要从字符串中解析出来。 一种情况是&#xff1a;Content-Disposition: form-data; name"userCode" 另一种是&#xff1a;key1value1&key2value2&key3value3…

微信小程序留言板1

wxml&#xff1a; <view class"view2"> <text class"test1">留言&#xff1a;</text><input type"text" class"input1" bindinput"ipt"/><button class"btn" bindtap"btn"…