![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode—字符串
akun+
~
展开
-
字符串——电话号码的字母组合
这道题我直接看的答案,共有两种方法。根本上说就是广度优先和深度优先。 一、广度优先 也就是用队列来存结果,读一个数字,把对应字符加入队列;再读一个数字,将队列中已有字符依次弹出,与此数字对应的字符依次组合,再加入队列。重复此操作。 Java: class Solution { public List<String> letterCombinations(String digits) { //广度优先 //声明一个全局变量,保存所有组合。 ...原创 2021-08-02 20:23:48 · 210 阅读 · 0 评论 -
字符串——最长公共前缀
检验所有串第一个字符是否相等,依次类推。 class Solution { public String longestCommonPrefix(String[] strs) { int n=strs.length; if(strs==null||n==0) return ""; int len,minl=strs[0].length(); StringBuilder str2=new StringBuilder(); ..原创 2021-08-02 09:56:37 · 81 阅读 · 0 评论 -
字符串——罗马数字转整数
class Solution { public int romanToInt(String s) { int sum = 0; int preNum = getValue(s.charAt(0)); for(int i = 1;i < s.length(); i ++) { int num = getValue(s.charAt(i)); if(preNum < num) { ...原创 2021-08-01 11:33:47 · 94 阅读 · 0 评论 -
字符串——整数转罗马数字
Java: class Solution { public String intToRoman(int num) { int[] key={1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] value={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; StringBuilder str=new StringBuilder..原创 2021-07-31 21:01:50 · 182 阅读 · 0 评论 -
字符串——最长回文子串
给你一个字符串s,找到s中最长的回文子串。 解析: 1.暴力解法:双指针,遍历所有的回文子串,找到最长的。但超出了时间限制。 java: class Solution { public String longestPalindrome(String s) { if(s.length()==0||s==" ") return ""; int max=0,start=0,end=0; String sub=" "; for...原创 2021-07-31 16:45:13 · 117 阅读 · 0 评论 -
字符串——Z字形变换
解析: 这个题的任务就是找规律。 一开始我是想每一行都找到规律,单独计算。 但这样我就忽略了每一行与第一行之间部分有+1,2、、的关系,后来我就第二行由第一行+1得来,依次类推。 但这样也不能得到全部的第二行,部分需要-1得来。 然后本道题的关键变量z=2*numRows-2 是拿示例找规律得来的。 以此就可以写代码了。 class Solution { public String convert(String s, int numRows) { if(numRows...原创 2021-07-30 12:20:45 · 224 阅读 · 0 评论 -
字符串——字符串转换整数(atoi)
解析:这个题关键的就是看懂题目。根据步骤写代码即可。 提取整数和判断是否溢出,使用了与“整数反转”那道题同样的思想。 Java: class Solution { public int myAtoi(String s) { int n=s.length(); int sign=1,res=0,i=0; while(i<n&&s.charAt(i)==' '){ //舍弃空格 ...原创 2021-07-31 10:21:54 · 89 阅读 · 0 评论 -
字符串——最长回文子串
给你一个字符串s,找到s中最长的回文子串。 解析: 1.暴力解法:双指针,遍历所有的回文子串,找到最长的。但超出了时间限制。 java: class Solution { public String longestPalindrome(String s) { if(s.length()==0||s==" ") return ""; int max=0,start=0,end=0; String sub=" "; for(...原创 2021-07-27 21:06:19 · 272 阅读 · 0 评论 -
数组——无重复字符的最长子串
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 解析: 初始思路:一开始我想用双指针的思想,几层for循环判断,但一直没有成功。 这里记录一下未成功代码,读者可直接略过。 错误代码: class Solution { public int lengthOfLongestSubstring(String s) { int i=0,j=1; int max=0; if(j==s.length()) max=1; ...原创 2021-07-26 22:29:45 · 202 阅读 · 0 评论