首页 > 其他分享 >字符串

字符串

时间:2024-03-09 18:49:35浏览次数:25  
标签:匹配 反转 位置 next 字符串 指针

一、反转字符串

1:类似反转链表,双指针

2:k值反转:每隔 2k 个字符的前 k 个字符进行反转,双指针

 

二、替换数字

正则匹配,但要运用substring将需要的部分分出来

或是指针。对于线性数据结构,填充或者删除,后序处理会高效的多。

 

三、反转字符单词

需要删除多余空格,,然后反转

 

四、右旋字符串

整体反转,前部分反转,后部分反转

注意字符串和数组的区别,字符串无法修改其中的字符,但数组可以

 

五、找出字符串中第一个匹配项的下标

思想一:双指针

思想二:KMP(主要用在字符串匹配上),

next中的值代表着该子串的最长相等前后缀的长度,

因为数组是从0开始的,所以该值就指向了未匹配好的位置,
计算next数组时,若s[i]!==s[j],这说明不匹配,这个时候,j就要找到上一次匹配的位置,再判断匹不匹配,不匹配的话,再往前找,直到匹配或是j=0,
这个时候,j的位置代表了上一次匹配的位置,如果这个时候的s[i]===s[j],那么表示j还可以往后移,继续下次匹配,同时next[i]填入j的位置,表示能够匹配的上的长度;如果
s[i]!==s[j],就表示,j这个时候已经在起点位置了,next[i]的值得为起点位置即0,然后继续下次循环。

两个字符串的比较也同理。

六、重复的子字符串

字符匹配:两个s拼接为一个ss(形成环),掐头去尾,若能找到ss中存在s,就说明s可有其子串重复构成

标签:匹配,反转,位置,next,字符串,指针
From: https://www.cnblogs.com/LiChaoyue-11/p/18061231

相关文章

  • python Ai 应用开发基础训练,字符串,字典,文件
    --------------------------------------  编程能是大模型应用的天花板..................................................................所以要好好将大模型应用在企业一定要好好练好最看不起的一环,基础能力字符串处理 本文档来自老男孩培训Alex课程记录,我在2017年......
  • Java登陆第三十二天——ES6(一)let、const、模板字符串、解构表达式、箭头函数
    所谓ECMAScript6也就是JS6。这次更新带来了大量的新特性,使JS代码更简洁,更强大。复习JS请走:JS入门JS6文档请走:JS6菜鸟教程ES6新增了let和const关键字,用作声明变量let相较于var,let声明的变量更规范。ES6更推荐使用let。let不可重复声明let可以作为成员变量:(let遇见非函数......
  • .net api接口接收字符串或者xml
    a///<summary>///接收字符串或者xml///</summary>///<returns></returns>[HttpPost]publicasyncTask<JsonResult>AcceptXMLOrString(){varlen=Convert.ToInt32(HttpContext.Request.ContentLength);byte[]byt=newbyte......
  • 工作常用的EXCEL公式 | 将一个字符串中的文本和数字进行拆分
    需求:将A列拆分成B、C列 公式:=LEFT(A2,2*LEN(A2)-LENB(A2))=RIGHT(A2,LENB(A2)-LEN(A2)) 函数用法说明: ......
  • 7-1 jmu-python-输入输出-计算字符串中的数
    7-1jmu-python-输入输出-计算字符串中的数分数10全屏浏览切换布局作者 郑如滨单位 集美大学将字符串中的每个数都抽取出来,然后统计所有数的个数并求和。输入格式:一行字符串,字符串中的数之间用1个空格或者多个空格分隔。输出格式:第1行:输......
  • day 05-4 数据类型(字符串)
    4.6字符串独有功能练习题#1.写代码实现判断用户输入的值否以"al"开头,如果是则输出"是的",否则输出"不是的"data=input("请输入您的用户名:")ifdata.startswith("al"):print("是的")else:print("不是的")#2.写代码实现判断用户输入的值否以"ab&......
  • Golang(Go语言)字符串转时间格式封装以及填坑
    先看代码:packagemainimport( "fmt" "time")funcmain(){ timeStr:="2021-05-2100:00:00" utcTime,_:=time.Parse(time.DateTime,timeStr) fmt.Println(utcTime)fmt.Println(utcTime.Local())}执行结果:从这里可以看出,字符串转换为时......
  • 字符串随笔
    读字符串函数fgets功能:从文件中读取字符串,每次只读取一行。注意:fgets每次最多只能读取n-1个字2.符,第n个为NULL。当遇到换行符或者EOF时,即使当前位置在n-1之前也读出结束。若函数返回成功,则返回字符串数组str的首地址。例:小L很喜欢听私人笑声,可是有些歌曲他没有夹带私人笑......
  • LeetCode75 1768.交替合并字符串
    1768.交替合并字符串https://leetcode.cn/problems/merge-strings-alternately/description/?envType=study-plan-v2&envId=leetcode-75publicStringmergeAlternately(Stringword1,Stringword2){intlen1=word1.length();intlen2=word2.length()......
  • JS字符串、数组 常用方法
    字符串字符串增:1、+拼接2、concat()例:leta='hello'  letb=a.concat('word')  console.log(b) // "helloworld" 字符串删:1、slice(star,end)  从原始字符串中提取一个子字符串,并返回一个新的字符串,而不改变原字符串。start(必需):起始位置。如果是正数,则......