字符串
失业边缘,疯狂挣扎
这个作者很懒,什么都没留下…
展开
-
139. 单词拆分(Java)(动归正向迭代,一维背包)
1 题目 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = “leetcode”, wordDict = [“leet”, “code”] 输出: true 解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。 示例 2: 输入: s = “applepenapple”, wordDict原创 2020-09-19 21:16:07 · 214 阅读 · 0 评论 -
8. 字符串转换整数 (atoi)(腾讯1面)(字符串)(麻烦)
1 题目 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。 假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。 该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个原创 2020-09-04 15:25:31 · 78 阅读 · 0 评论 -
面试题05. 替换空格(Java)(以字符遍历)(以字符串数组遍历)
1 题目 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = “We are happy.” 输出:“We%20are%20happy.” 限制: 0 <= s 的长度 <= 10000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 2 Java 2.1 方法一(以字符遍历) class So原创 2020-05-24 09:57:54 · 277 阅读 · 0 评论 -
1143. 最长公共子序列(Java)(动归)
1 题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。 若这两个字符串没有公共子序列,则返回 0。 示例 1: 输入:text1 = “abcde”, text2 =原创 2020-05-17 13:25:50 · 101 阅读 · 0 评论 -
面试题;拼多多;1079. 活字印刷(Java)(回溯,以26个字母为分支)(回溯,以字符串剩余字符为分支)
1 题目 你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。 注意:本题中,每个活字字模只能使用一次。 示例 1: 输入:“AAB” 输出:8 解释:可能的序列为 “A”, “B”, “AA”, “AB”, “BA”, “AAB”, “ABA”, “BAA”。 示例 2: 输入:“AAABBC” 输出:188 提示: 1 <= tiles.length <= 7 tiles 由大写英文字母组成 来源:力扣(LeetCode) 链接:原创 2020-05-10 18:44:13 · 303 阅读 · 0 评论 -
49. 字母异位词分组(Java)(HashMap的高级运用)
1 题目 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”] ] 说明: 所有输入均为小写字母。 不考虑答案输出的顺序。 2 Java 2.1 方法一(超时) c...原创 2020-05-07 00:29:06 · 157 阅读 · 0 评论 -
20. 有效的括号(Java)(map匹配)
1 题目 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]” 输出: false 示例 4: 输入:...原创 2020-05-05 23:32:21 · 316 阅读 · 0 评论 -
72. 编辑距离(Java)(一条龙,动归正向迭代,极难理解)
1 题目 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = “horse”, word2 = “ros” 输出:3 解释: horse -> rors...原创 2020-04-07 13:55:32 · 106 阅读 · 0 评论 -
5. 最长回文子串(Java)(中心扩展,思维)(动归乱序迭代)
1 题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindromic...原创 2020-04-06 14:04:29 · 76 阅读 · 0 评论 -
647. 回文子串(Java)(中心扩展,思维)(动归乱序迭代)
1 题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: “abc” 输出: 3 解释: 三个回文子串: “a”, “b”, “c”. 示例 2: 输入: “aaa” 输出: 6 说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”. 注意: 输...原创 2020-04-05 14:34:17 · 163 阅读 · 0 评论 -
面试题45. 把数组排成最小的数(Java)(Lambda,comparator的Array.sort(),compareTo比较String)
1 题目 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: “102” 示例 2: 输入: [3,30,34,5,9] 输出: “3033459” 提示: 0 < nums.length <= 100 说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数 拼接起来的数字可能会有前导 0,最后...原创 2020-03-30 19:22:03 · 707 阅读 · 0 评论 -
面试题67. 把字符串转换成整数(Java)(思维,按题目要求一步一步来)
1 题目 写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了...原创 2020-03-29 14:52:15 · 236 阅读 · 0 评论 -
面试题58 - I. 翻转单词顺序(Java)(手动实现split;String基本使用)(无情API;s.split())
1 题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。 示例 1: 输入: “the sky is blue” 输出: “blue is sky the” 示例 2: 输入: " hello world! " 输出: “world! hell...原创 2020-03-24 13:27:14 · 117 阅读 · 0 评论 -
面试题46. 把数字翻译成字符串(Java)(回溯递归;动态规划递归、迭代)
1 题目 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例 1: 输入: 12258 输出: 5 解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi...原创 2020-03-18 17:42:33 · 106 阅读 · 0 评论 -
17. 电话号码的字母组合(Java)(回溯递归,非典型)
1 题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 来源:力扣(LeetCode)...原创 2020-02-17 14:19:20 · 205 阅读 · 0 评论 -
面试题50. 第一个只出现一次的字符(Java)(HashMap)
1 题目 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 示例: s = “abaccdeff” 返回 “b” s = “” 返回 " " 限制: 0 <= s 的长度 <= 50000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu...原创 2020-03-10 19:34:44 · 204 阅读 · 0 评论 -
面试题38. 字符串的排列(Java)
1 题目 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例: 输入:s = “abc” 输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”] 限制: 1 <= s 的长度 <= 8 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/zi-f...原创 2020-03-10 18:32:15 · 297 阅读 · 0 评论 -
面试题48. 最长不含重复字符的子字符串(Java)(List)(HashSet)(HashMap)
1 题目 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最...原创 2020-03-09 20:28:05 · 288 阅读 · 0 评论 -
面试题58 - II. 左旋转字符串(Java)
1 题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1: 输入: s = “abcdefg”, k = 2 输出: “cdefgab” 示例 2: 输入: s = “lrloseumgh”, k = 6 输出: “umghlrlos...原创 2020-03-06 16:35:40 · 124 阅读 · 0 评论