字符串
2023-11-02 12:16:46 0 举报
AI智能生成
字符串总结
作者其他创作
大纲/内容
151.翻转字符串里的单词
先整体反转再局部反转
reverse(string& s, int start, int end)
整体反转
局部反转
双指针法去空格
去除多余空格
快指针遇到非空格,s[slow] = s[fast],slow和fast继续移动,知道快指针遇到空格,跳出当前while循环
每个单词之间保留空格
每次快指针遇到非空格,slow+=1;s[slow]=' ';填充空格,slow大于0时才执行上述代码
剑指Offer58-II.左旋转字符串
先局部反转再整体反转
反转函数reverse(begin,end)
理论基础
字符串是若干字符组成的有限序列,也可以理解为是一个字符数组
在C语言中,把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。
在C++中,提供一个string类,string类会提供 size接口,可以用来判断string类字符串是否结束,就不用'\0'来判断是否结束。
vector< char > 和 string区别
在基本操作上没有区别,但是 string提供更多的字符串处理的相关接口,例如string 重载了+,而vector却没有。
C++库函数,如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数
swap()交换
reverse()反转
.resize()重置字符串大小
.erase()删除容器元素
344. 反转字符串
双指针法,交换元素
541. 反转字符串II
反转前k个元素
reverse(s.begin()+i,s.begin()+i+k)
反转这 2k 字符中的前 k 个字符
剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,
反转剩余元素
reverse(s.begin()+i,s.end())
122. 路径加密
替换.变成空格
path[i]=='.'?str+=' ':str+=path[i];
0 条评论
下一页