151.翻转字符串里的单词

class Solution
{public:string reverseWords(string s){reverse(s.begin(), s.end());int size = (int)s.size();int start = 0; //每个单词开始int end = 0;   //每个单词末尾int index = 0; //要返回的字符串下标for (; start < size; start++){if (s[start] == ' ')continue; //开头空格,跳过if (index != 0){//第二个单词开始 开头需要插一个空格s[index++] = ' ';}end = start;//替换原来的s 一直到空格为止while (end < size && s[end] != ' '){s[index++] = s[end++];}//index/end指向了单词末尾的 下一个字符//一个单词的长度int len = end - start;//index - len就是单词开始的地方//s.begin() + index - len 单词开始的位置//s.begin() + index 单词结束的位置reverse(s.begin() + index - len, s.begin() + index);//更新下一个单词的开始位置 start正好指向了空格的位置start = end;//这一轮循环结束 之后 start++//如果只有一个空格 start正好 指向了下一个单词的开始位置//如果有多个空格,则指向了下一个空格 下次循环开头会跳过}//去除末尾的空格和没有用的字符s.erase(s.begin() + index, s.end());return s;}
};

394.字符串解码


递归法

class Solution {public:string analysis(string s, int& index) {string res;int num = 0;string temp;while (index < s.size()) {//遇到数字if (s[index] >= '0' && s[index] <= '9') {num = 10 * num + s[index] - '0';//处理数字超过1位的情况}//遇到[else if (s[index] == '[') {temp = analysis(s, ++index);//碰到'[',开始递归         while(num){res += temp;--num;//最后num=0(累加字符串num次)}      }//遇到]else if (s[index] == ']') break;//碰到']',结束递归//遇到字母else res += s[index];//下标+1index++;}return res;}string decodeString(string s) {int index = 0;return analysis(s, index);}
};

97.交替字符串

思路


class Solution {public:bool isInterleave(string s1, string s2, string s3) {int n1 = s1.size();int n2 = s2.size();int n3 = s3.size();if (n1 + n2 != n3)return false;vector<vector<bool>>dp(n1 + 1, vector<bool>(n2 + 1,false));//边界条件设置dp[0][0] = true;for (int i = 1; i < n1 + 1; i++) {dp[i][0] = s3[i - 1] == s1[i - 1];if (!dp[i][0])break;}for (int i = 1; i < n2 + 1; i++) {dp[0][i] = s3[i - 1] == s2[i - 1];if (!dp[0][i])break;}for (int i = 1; i < n1 + 1; i++) {for (int j = 1; j < n2 + 1; j++) {//根据上一步以及当前字符是否相匹配来判断dp[i][j] = (dp[i - 1][j] && s3[i + j - 1] == s1[i - 1] || dp[i][j - 1] && s3[i + j - 1] == s2[j - 1]);}}return dp[n1][n2];}
};

459.重复的子字符串

思路:

class Solution {public:bool repeatedSubstringPattern(string s) {return (s+s).find(s, 1) != s.size();//s+s中搜索s,从下标为1的字符开始搜索,返回匹配字符串的第一个字符下标}
};

leetcode字符串专题相关推荐

  1. leetcode探索专题中的初级算法练习题(python代码+解题思路)

    本文记录leetcode探索专题中的初级算法练习题,附python实现代码&解题思路,做题过程不免查阅网络资料,侵删~如有错误,欢迎指正交流! 目录 专题一:数组: 26.从排序数组中删除重复 ...

  2. 【Python基础】字符串专题总结

    这篇是字符串专题总结 除了常见的数值型,字符串是另一种常遇到的类型.一般使用一对单引号或一对双引号表示一个字符串. 字符串中如果遇到 \ 字符,可能是在做字符转义,所谓的转义便是字符的含义发生改变,比 ...

  3. 七十二、Python | Leetcode字符串系列(下篇)

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  4. 七十一、Python | Leetcode字符串系列(上篇)

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  5. 肝!2500字 字符串专题总结

    这篇是字符串专题总结 除了常见的数值型,字符串是另一种常遇到的类型.一般使用一对单引号或一对双引号表示一个字符串. 字符串中如果遇到 \ 字符,可能是在做字符转义,所谓的转义便是字符的含义发生改变,比 ...

  6. python中字符串乘法_python leetcode 字符串相乘实例详解

    给定两个以字符串形式表示的非负整数 num1 和  num2 ,返回  num1 和  num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", ...

  7. python 字符转义_2500字 字符串专题总结

    我的完整施工计划 已完成专题: 1.我的施工计划 2.数值专题 这篇是字符串专题总结 除了常见的数值型,字符串是另一种常遇到的类型.一般使用一对单引号或一对双引号表示一个字符串. 字符串中如果遇到 \ ...

  8. LeetCode 字符串简单部分 算法 python实现

    ''' #2018-06-02 June Saturday the 22 week, the 153 day SZ LeetCode 字符串简单部分 算法 python实现 https://leetc ...

  9. LeetCode——字符串的最大公因子

    LeetCode--字符串的最大公因子 题目如下: 对于字符串 S 和 T,只有在 S = T + - + T(T 与自身连接 1 次或多次)时,我们才认定 "T 能除尽 S". ...

最新文章

  1. 我也说说Emacs吧(6) - Lisp速成
  2. 【Android 内存优化】垃圾回收算法 ( 分代收集算法 | Serial 收集器 | ParNew 收集器 | Parallel Scavenge 收集器 | CMS 并发标记清除收集器 )
  3. dwc3 linux usb3.0 driver架构
  4. 2021数据技术嘉年华线上召开,万人观看,迎接国产数据库的耕获菑畬之年
  5. 2017.10.29 软件安装 思考记录
  6. springBoot学习(二) 基础运行原理
  7. Web后端学习笔记Flask(3)模板 实例
  8. Java中模拟POST上传文件
  9. 深度学习之OCR相关经验记录
  10. Linux之/etc/group文件
  11. 经典参考书:《编程之美——微软技术面试心得》
  12. 思科模拟器启用CHAP协议
  13. 临沂鸿蒙文化城在哪,位置定了!临沂城区将再建多个公园!
  14. 关于iphone手机影片预览的格式 转自 我的恩师 郑哥
  15. 前端自学日记-day5
  16. 《神经网络与深度学习》—学习笔记
  17. Pycharm中,pyqt5.11.1的Qt assistant显示
  18. 生日快乐祝福。我遇见你 都是人间最好的事
  19. 计算机任务计划程序已损坏,win10创建任务提示“该任务映像已损坏或已篡改”的解决方法...
  20. 微信小游戏——贪吃蛇

热门文章

  1. flutter美颜相机插件
  2. [原创]从东汉谋杀案到罗马的灭亡 - 世界历史的蝴蝶效应
  3. grep 查找命令使用
  4. 个人网站支付,个人 APP 支付,如何接入支付?
  5. UE4 4.24像素流送学习整理
  6. 安全靠谱的商家补法玩法
  7. 什么时候 Python 的 List,Tuple 最后一个 Item 后面要加上一个逗号
  8. 【Matlab系列】一维信号/数字图像小波阈值去噪(软阈值,硬阈值,固定阈值)【含Matlab源码】
  9. 9.1 电商B2C商铺新用户复购预测
  10. Babylon.js 第25章 物理渲染