字符串
leetcode
059
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Excel表列名称
一、题目二、代码注意边界值26相关的例如52class Solution { private static char[] ch = new char[] {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; public static String convert原创 2021-09-25 18:37:51 · 129 阅读 · 0 评论 -
重新格式化电话号码(字符串)
这样的题一般都是简单难度,其思路就是找规律,找到规律都会很简单。代码class Solution { public String reformatNumber(String number) { String str = getStr(number); int len = str.length(); if(len <= 3){ return str; } return getS...原创 2021-09-05 17:14:24 · 256 阅读 · 0 评论 -
整理字符串(栈 + 暴力)
代码import java.util.Stack;class Solution { public String makeGood(String inputStr) { Stack<Character> stack = new Stack<>(); int len = inputStr.length(); for (int i = 0; i < len; i++) { if (inp...原创 2021-09-05 17:10:45 · 132 阅读 · 0 评论 -
最大数(自定义排序规则)
一、题目给定一组非负整数 nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例:输入:nums = [3,30,34,5,9]输出:"9534330"二、代码class Solution { //自定义排序规则 //一对整数 a 和 b ,如果a + b > b + a ,则a 应该排在 b前面 //例如 比较 3 和 30谁排在前面,则 330 >.原创 2021-02-19 14:13:46 · 631 阅读 · 0 评论 -
计数二进制子串
一、题目给定一个字符串s,计算具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是连续的。重复出现的子串要计算它们出现的次数。示例 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。二、代码思路:先生成次数数组,再两两遍历数组,取出最小值,并累加。00110011..原创 2021-02-16 23:26:53 · 134 阅读 · 0 评论 -
翻转字符串里的单词
注意:split那些前后都有空格的字符串时,会生成好多空串元素class Solution { public String reverseWords(String s) { String[] str = s.split(" "); List<String> list = new ArrayList<>(); for(int i = 0; i < str.length; i++){ Stri..原创 2020-09-25 18:19:40 · 127 阅读 · 0 评论 -
配置文件恢复
为了简化输入,方便用户,以“最短唯一匹配原则”匹配:1、若只输入一字串,则只匹配一个关键字的命令行。例如输入:r,根据该规则,匹配命令reset,执行结果为:resetwhat;输入:res,根据该规则,匹配命令reset,执行结果为:resetwhat;2、若只输入一字串,但本条命令有两个关键字,则匹配失败。例如输入:reb,可以找到命令rebootbackpalne,但是该命令有两个关键词,所有匹配失败,执行结果为:unknowncommand3、若输入两字串,则先匹配第一关键字,...原创 2020-08-31 18:19:00 · 399 阅读 · 0 评论 -
复原IP地址
暴力解法class Solution { public List<String> restoreIpAddresses(String s) { List<String> IPList = new ArrayList<>(); int len = s.length(); //三重循环 for(int i = 0; i < 3; i++){//注意i的终止下标 f...原创 2020-08-14 15:19:32 · 111 阅读 · 0 评论 -
检测大写字母
代码:class Solution { public boolean detectCapitalUse(String word) { if(word.charAt(0) >= 'A' && word.charAt(0) <= 'Z'){ for(int i = 1; i < word.length() -1; i++){ if(word.charAt(i)>...原创 2020-08-13 21:32:17 · 237 阅读 · 0 评论 -
字母异位词分组
一、题目二、代码当且仅当它们的排序字符串相等时,字符串是字母异位词,因此维护一个HashMap,键为排序后的字符串,value为字母异位词列表。注意字符串和字符数组的相互转化。class Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> result = new ArrayList<&g..原创 2020-07-12 12:38:06 · 188 阅读 · 0 评论 -
括号生成
一、题目二、代码长度为n的序列就是在长度为n-1的序列前加一个'('或')'class Solution { List<String> result = new ArrayList<>(); public List<String> generateParenthesis(int n) { int index = 0; generateParenthesis_(new char[2 * n]...原创 2020-06-22 12:49:11 · 325 阅读 · 0 评论 -
使用回溯算法计算电话号码的字母组合
一、题目二、代码回溯算法需要解决三个问题:路径:也就是已经做出的选择。选择列表:也就是你当前可以做的选择。结束条件:也就是到达决策树底层,无法再做选择的条件。其中最关键的点就是:在递归之前做选择,在递归之后撤销选择class Solution { LinkedList result = new LinkedList(); Map<String, String> letterMap = new HashMap<>();// pub..原创 2020-06-21 13:31:01 · 380 阅读 · 0 评论 -
贪心算法解决整数转罗马数字
一、题目二、代码贪心算法,其是一种在当前时间做出最佳可能决策的算法;在这种情况下,它会取出最大可能的符号。每次寻找适合它的最大符号。我们减去它,然后再寻找适合最大符号,依此类推,直到结果为0。最后取出的每个符号都附加到输出的罗马数字字符串上。class Solution { public String intToRoman(int num) { int[] nums = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9,.原创 2020-06-17 12:41:28 · 223 阅读 · 0 评论 -
Z 字形变换
一、题目二、代码最容易想到用二维数组的方法去做,但过于麻烦。下面使用一种简单的方法去做。从左向右遍历字符串。将每行定义成字符串数组,最后再将该数组拼接起来即可。因为字符串转换过程即向下向右,反复循环过程,设定 down 变量表示是否向下,loc 变量表示当前字符串数组的下标,如果 down 为 true,则 loc+=1,字符串数组下标向后移动,将当前字符加入当前字符串中;如果 down为 false,则表示向右,则 loc−=1,字符串数组下标向前移动,将当前字符加入当前字符串中。..原创 2020-06-16 15:22:25 · 143 阅读 · 0 评论 -
二进制求和
一、题目二、代码引入大整数import java.math.BigInteger;class Solution { public String addBinary(String a, String b) { BigInteger aBig =new BigInteger(a,2); BigInteger bBig =new BigInteger(b,2); BigInteger result = aBig.add(bBig);..原创 2020-06-14 18:57:28 · 160 阅读 · 0 评论 -
最长回文子串
一、题目二、代码暴力解法使用二重循环判断所有字符串是否为回文字符串,超时。class Solution { public String longestPalindrome(String s) { if(s.length() < 2){ return s; } int maxLen = Integer.MIN_VALUE; String maxpalindrome = ""; ...原创 2020-06-13 13:16:24 · 130 阅读 · 0 评论 -
最长公共前缀
一、题目二、代码暴力解法class Solution { public String longestCommonPrefix(String[] strs){ if(strs.length == 0){ return ""; } int i = 0; String common = ""; int minlen = Integer.MAX_VALUE; for(..原创 2020-06-11 17:46:20 · 116 阅读 · 0 评论 -
罗马数字转整数
一、题目二、代码class Solution { public int romanToInt(String s) { Map<Character, Integer> numsMap = new HashMap<>(); numsMap.put('I', 1); numsMap.put('V', 5); numsMap.put('X', 10); numsMap.put('L', 5.原创 2020-06-10 20:39:13 · 191 阅读 · 0 评论 -
最后一个单词的长度
一、题目二、代码class Solution { public int lengthOfLastWord(String s) { s = s.trim(); if(s.equals("")){ return 0; } String[] words = s.split(" "); String word = words[words.length - 1]; retur.原创 2020-06-09 21:54:31 · 95 阅读 · 0 评论 -
字符串转换整数 (atoi)
一、思路此题看似简单,实际上要处理多种情况。思路:通过截取函数去掉开头的空格 处理首字符为‘+’或者‘-’的情况 处理首字符为数字字符的情况 处理剩余不合法字符的情况二、代码注意:&& 和 || 的优先级;条件判断中各条件的顺序。代码如下:class Solution { public int myAtoi(String str) { str = str.trim(); boolean negativ...原创 2020-06-07 15:38:23 · 133 阅读 · 0 评论 -
回文数
一、思路思路一:整数转化为字符串 字符串翻转后和原字符串比较,如果相等则为回文数。思路二:整数不断 / 10二、代码思路一:借用StringBuffer()中的reverse简化。class Solution { public boolean isPalindrome(int x) { String str = Integer.toString(x); String reverse = new StringBuffer(str)..原创 2020-06-06 13:51:24 · 371 阅读 · 0 评论 -
无重复字符的最长子串
一、思路最容易想到是二重循环(暴力解法),引入hashmap记录不重复的字符。二、代码class Solution { public int lengthOfLongestSubstring(String s) { if(s.equals("")){ //空串处理 return 0; } int count = 0; List<Integer> countList = new Ar.原创 2020-06-05 14:31:11 · 134 阅读 · 0 评论 -
实现 strStr()
一、思路二、代码注意:str.substring(beginIndex,EndIndex);//实际索引号[beginIndex,EndIndex-1]class Solution { public int strStr(String haystack, String needle) { // return haystack.indexOf(needle); int needleLen = needle.length(); if(ne原创 2020-06-02 16:00:59 · 135 阅读 · 0 评论 -
整数反转
一、思路此题可用纯数学的方式去做,也可另辟蹊径,直接通过整形与字符串的相互转化来做。思路:整型转化为字符串,给字符串进行反转。 考虑整数可能为负数的情况。 考虑整数可能溢出的情况。二、代码话不多说,上代码。class Solution { public int reverse(int x) { String s = Integer.toString(x); int length = s.len..原创 2020-05-29 18:43:03 · 172 阅读 · 0 评论
分享