![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
傅里叶不想变换_
这个作者很懒,什么都没留下…
展开
-
8. 字符串转换整数 (atoi)
思路:依次遍历,注意前导的空格符,注意正负号以及边界条件。 class Solution { public int myAtoi(String s) { int i = 0, n = s.length(); // 结果 int res = 0; // 正负数的标志位 int flag = 1; // 去除前面的空字符 while(i < n && s.charAt(.原创 2021-09-27 16:49:07 · 60 阅读 · 0 评论 -
46. 全排列
回溯算法的框架 for 选择 in 选择列表: # 做选择 将该选择从选择列表移除 路径.add(选择) backtrack(路径, 选择列表) # 撤销选择 路径.remove(选择) 将该选择再加入选择列表 class Solution { List<List<Integer>> res = new ArrayList<>(); public List<List<Integer&g.原创 2021-09-22 10:00:40 · 56 阅读 · 0 评论 -
14. 最长公共前缀
思路: 横向扫描:求两个字符串的最长公共前缀,然后一直遍历。如果某个时候最长前缀长度为0,后面的就不需要遍历了。 纵向扫描:i 用来遍历第一个字符串,j 用来表示有多少个字符串 class Solution { public String longestCommonPrefix(String[] strs) { if(strs == null || strs.length == 0){ return ""; } String .原创 2021-08-01 19:21:19 · 142 阅读 · 0 评论 -
9. 回文数
思路: 1.转成字符串然后对比用回文串的方法 2.翻转一半字符串,然后对比。比如1221,设后半部分字符串反转后为revertedNumber,判断x == revertedNumber,12321,将321反转,判断x == revertedNumber / 10; class Solution { public boolean isPalindrome(int x) { String str = String.valueOf(x); int l =原创 2021-07-31 12:52:33 · 63 阅读 · 0 评论 -
7.整数反转 8. 字符串转换整数 (atoi)
这里写目录标题7.整数反转8. 字符串转换整数 (atoi) 7.整数反转 思路:比如123,先取出3,ans = ans * 10 + digit,得到 ans = 3, 下一次循环,取出2,ans = 3 * 10 + 2 = 32,再下一次循环取出1, ans = 32 * 10 + 1 = 321 class Solution { public int reverse(int x) { int ans = 0; while(x != 0){原创 2021-07-31 11:19:32 · 48 阅读 · 0 评论 -
9. 回文数
思路:1.暴力反转 2.翻转一半,例如,1221,我们可以将数字 “1221” 的后半部分从 “21” 反转为 “12”,并将其与前半部分 “12” 进行比较 class Solution { public boolean isPalindrome(int x) { StringBuilder sb = new StringBuilder(); String s = sb.append(x).reverse().toString(); retur原创 2021-05-31 16:27:44 · 37 阅读 · 0 评论 -
5. 最长回文子串
思路:动态规划或者中心拓展算法 动态规划 class Solution { public String longestPalindrome(String s) { int len = s.length(); if(len < 2) return s; int maxLen = 0; int start = 0; // dp[i][j] 表示 s[i..j] 是否是回文串 boolean dp[][.原创 2021-05-31 15:32:05 · 52 阅读 · 0 评论