1.给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
解题思路:滑动窗口 left right 让窗口从左向右(right增加到最长)每次增加 让左窗口向右(如果有重复字符就)移动
2.最长回文子串
就是正读和反读一样
解题思路:动态规划的思想,单独一个字符是回文 两个相同的也是回文,还有就是如果一个字符串是回文,那么去掉首尾还是回文,所以初始化一个d[i][i]=true,设置左边界和有边界,若首尾相同,偏移以后d【i-1】【j+1】为true
3.z字抖动
给定行数按z字抖动
解题思路:直接莽 找规律
0 0+t 0+2t 0+3t
1 t-1 1+t 0+2t-1 1+2t 0+3t-1 1+3t
2 t-2 2+t 0+2t-2 2+2t 0+3t-2 2+3t
3 3+t 3+2t 3+3t
4.给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)
本身提取就是%10 -掉然后除10,次身*10+提取出来的数,最后的结果就是判断是否满足条件
5.字符串转换整数 (atoi)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
函数 myAtoi(string s) 的算法如下:
读入字符串并丢弃无用的前导空格
检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
将前面步骤读入的这些数字转换为整数(即,“123” -> 123, “0032” -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤 2 开始)。
如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1 。
返回整数作为最终结果。
解题思路:编译原理有穷状态机,也可以用if条件,但是比较乱。有穷状态机的想法直观,布置好状态,让字符串往下识别就好了