AcWing 字符串专题题解

38-外观数列

在这里插入图片描述
几个几,向下计算,由于数据小,直接dfs就行
在这里插入图片描述

49-字母异位词分组

在这里插入图片描述
其实就是模拟分类,分类的操作,map和set可以胜任。难点就是如何模拟,比如如何开拓vector的大小。
在这里插入图片描述

151-翻转字符串里的单词

在这里插入图片描述
两次反转,第一次整体反转,第二次局部反转,只有注意空格什么时候加,以及最后删除多余空格就行。
在这里插入图片描述

165-比较版本号

在这里插入图片描述
对每一个字符都分为是不是‘ . ’,,如果是,那么每次判断的条件更新,再对不是的,只要注意把前导零去点,其他存进数组,最后一个个比较。
在这里插入图片描述

最长回文子串

在这里插入图片描述
看到回文,最先想到的就是DP,那么这题的思路其实就是从DP转到输出字符串,怎么转,就是记录端点值。最后把端点值里的字符拼接起来就行。
在这里插入图片描述

273-整数转换英文表示

在这里插入图片描述
字符串这一系列,都需要定义字符数组,然后弄清思路,理清情况,最后分类讨论,最后的括号记得处理一下。
在这里插入图片描述
在这里插入图片描述
任何一次输出都是有规律的,我找到的规律比较繁琐,这个看题解应该可以理解,我的代码只能自己懂。。
在这里插入图片描述

3-无重复字符的最长字串

在这里插入图片描述
滑动窗口。i记录左指针,j记录右指针,j不断向右,一旦重复,i也向右。
这题目有个bug,卡了我几小时,就是判断j < len - 1那,len不能是s.length(),不然会返回false,我真是服气了这道题。
在这里插入图片描述

166-分数到小数

在这里插入图片描述
题解很详细
在这里插入图片描述

131-分割回文串

在这里插入图片描述
树形分解,dfs中有个循环,用来分割。当你循环i的时候,如果这个是回文字符串,那么就dfs后面的字符串。如果不是,那i++,当你分割完前面的字符串时,后面的字符串都已经分割过了,就比如aba,先分割a,那么后面ba的所有情况都被讨论过了,因为我们如果把ba看作心字符串进行dfs,还是会对ba进行分割,先看b,b成功,则dfs(a),成功,再dfs(ba)。
在这里插入图片描述

227-基本计算器II

在这里插入图片描述
栈操作,开long long,加个#,方便字符串结尾,不然还要判断是不是i是否等于length-1。栈用来存储数字,用p来记录前一个运算符,加减乘除,加减不用担心顺序颠倒,所以加减时存进栈,乘除时,把栈顶元素拿出来,进行操作,再把结果存进栈。
在这里插入图片描述

30-串联所有单词的子串

在这里插入图片描述
这个思路还是很简单的,就是一个个字符往后找,但是找的途中怎么确保字符串是相等的,因为words乱序,所以,我们要像一个办法表示所有的组合方法,那就是map映射,key存单词,value存数量(一个单词可能出现几个),然后再开一个map存我们查找的子串中,是否有value个map[key]值,在查找中途,会有很多break条件,比如一旦发现截取的单词map1中没有,那么break,如果,有了,加进map2中,但是map2中的value值大于map1中的对应value值,也会break,如果查询途中坚持到了最后,那么肯定满足,返回i。
在这里插入图片描述
最后一题,我准备归结到字符串进阶专题。
这几天准备把字符串进阶处理了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值