当前位置: 首页 > news >正文

kmp复习,需要多看多练

151. 反转字符串中的单词 - 力扣(LeetCode)

class Solution {
public:string reverseWords(string s) {int n = s.size();int i = n - 1;string res;while(i >= 0){while(i >= 0 &&  s[i] == ' ') i--;if(i < 0) break;int j = i;while(i >= 0 &&  s[i] != ' ') i--;if(!res.empty()){res.push_back(' ');}res.append(s, i + 1, j - i);}return res;}
};

28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)

class Solution {
public:int strStr(string haystack, string needle) {string s = needle + '#' + haystack;int n = s.size();int m = needle.size();vector<int> prefix(n);for(int i = 1; i < n; i++){int j = prefix[i - 1];while(j > 0 && s[i] != s[j]){j = prefix[j - 1];}if(s[i] == s[j]) prefix[i] = j + 1;if(prefix[i] == m) return i - m * 2;}return -1;}
};

55. 右旋字符串(第八期模拟笔试)

#include <iostream>
using namespace std;
#include <string>
#include <algorithm>int main(){int k;cin >> k;string s;cin >> s;int n = s.size();//string res;//res = s.substr( n - k , k) + s.substr(0, n - k );//cout << res << endl;reverse(s.begin(), s.begin() + n - k);reverse(s.begin() + n - k, s.end());reverse(s.begin(), s.end());cout <<  s;
}

459. 重复的子字符串 - 力扣(LeetCode)

class Solution {
public:bool repeatedSubstringPattern(string s) {int n = s.length();vector<int>  prefix(n);for(int i = 1; i < n; i++){int len = prefix[i - 1];while(len > 0 && s[len] != s[i]){len = prefix[len - 1];}if(s[len] == s[i]) prefix[i] = len + 1;}int res = n - prefix[n - 1];return  n % res == 0 && res > 0 && res < n  ;}
};

http://www.xdnf.cn/news/1218403.html

相关文章:

  • Kubernetes 应用部署实战:为什么需要 Kubernetes?
  • InfluxDB 与 Python 框架结合:Django 应用案例(三)
  • Java Matcher对象中find()与matches()的区别
  • QT6 Python UI文件转换PY文件的方法
  • HttpServletRequest 和 HttpServletResponse核心接口区别
  • 哈希的概念及其应用
  • linux线程封装和互斥
  • Flutter Chen Generator - yaml配置使用
  • 了解SQL
  • 从姑苏区人工智能大模型基础设施招标|学习服务器、AI处理器、GPU
  • 【车联网kafka】Kafka核心架构与实战经验(第二篇)
  • 防火墙安全实验
  • 《秋招在即!Redis数据类型面试题解析》
  • Vue3+Vite项目如何简单使用tsx
  • SpringBoot+SpringAI打造智能对话机器人
  • MySQL 8.0 OCP 1Z0-908 题目解析(38)
  • Kafka Streams窗口技术全解析:从理论到电商实时分析实战
  • TTS语音合成|GPT-SoVITS语音合成服务器部署,实现http访问
  • Linux多线程线程控制
  • 前端核心技术Node.js(五)——Mongodb、Mongoose和接口
  • 计算机网络学习(一、Cisco Packet Tracer软件安装)
  • 计算机网络学习--------三次握手与四次挥手
  • diffusion原理和代码延伸笔记1——扩散桥,GOUB,UniDB
  • 【计算机网络】5传输层
  • 网络与信息安全有哪些岗位:(4)应急响应工程师
  • 【网络安全】等级保护2.0解决方案
  • 物联网与AI深度融合,赋能企业多样化物联需求
  • Redis实战(4)-- BitMap结构与使用
  • 基于单片机智能油烟机设计/厨房排烟系统设计
  • 用Python绘制SM2国密算法椭圆曲线:一场数学与视觉的盛宴