
算法----字符串
sunlanchang
北京邮电大学-计算机硕士,sunlanchang@bupt.edu.cn
展开
-
LeetCode 43. 字符串相乘
Description给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/multiply-strings著作权归领扣网络所有。商业转载请联原创 2020-10-08 16:37:24 · 209 阅读 · 0 评论 -
LeetCode 93. 复原IP地址
Description给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效的 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效的 IP 地址。示例 1:输入:s = "25525511135"输出:["255.25原创 2020-09-20 11:07:33 · 230 阅读 · 0 评论 -
LeetCode 剑指 Offer 38. 字符串的排列 (回溯)
Description输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solution注意排除原创 2020-09-03 11:01:33 · 214 阅读 · 0 评论 -
336. 回文对(前缀树)
Description给定一组 互不相同 的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。示例 1:输入:["abcd","dcba","lls","s","sssll"]输出:[[0,1],[1,0],[3,2],[2,4]] 解释:可拼接成的回文串为 ["dcbaabcd","abcddcba","slls","llssssll"]示例 2:输入:["bat","tab","cat"]输出:[[0,1],原创 2020-08-06 13:14:24 · 211 阅读 · 0 评论 -
LeetCode 剑指 Offer 45. 把数组排成最小的数 (自定义排序)
Description输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例 2:输入: [3,30,34,5,9]输出: "3033459"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2020-07-29 22:05:59 · 242 阅读 · 0 评论 -
LeetCode 395. 至少有K个重复字符的最长子串 (分治)
Description找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。示例 1:输入:s = "aaabb", k = 3输出:3最长子串为 "aaa" ,其中 'a' 重复了 3 次。示例 2:输入:s = "ababbc", k = 2输出:5最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次。来源:力扣(LeetCode)链接:https://leetco原创 2020-07-08 12:14:04 · 292 阅读 · 0 评论 -
LeetCode 131. 分割回文串 (回溯)
Description给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-partitioning著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solution参考题解画出回溯树容易理解代码。c原创 2020-07-06 17:16:22 · 322 阅读 · 0 评论 -
LeetCode 179. 最大数 (自定义排序)
Description给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例 2:输入: [3,30,34,5,9]输出: 9534330来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solution按照字典顺序排序。class Solution(object):原创 2020-07-06 15:54:20 · 297 阅读 · 0 评论 -
LeetCode 212. 单词搜索 II (前缀树)
Description给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例:输入: words = ["oath","pea","eat","rain"] and board =[ ['o','a','a','n'], ['e','t','a','e'], ['i','h原创 2020-07-06 15:35:53 · 275 阅读 · 0 评论 -
LeetCode 44. 通配符匹配(回溯)
Description给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例 2:输入:s =原创 2020-07-02 18:12:30 · 304 阅读 · 0 评论 -
LeetCode 13. 罗马数字转整数
Description罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V转载 2020-06-30 16:32:34 · 235 阅读 · 0 评论 -
LeetCode 10. 正则表达式匹配(回溯)
Description给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。示例 2:原创 2020-06-29 13:38:12 · 315 阅读 · 0 评论 -
LeetCode 5. 最长回文子串
Description给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Solu原创 2020-06-10 09:53:54 · 223 阅读 · 0 评论 -
LeetCode 76. 最小覆盖子串(滑动窗口)
Description给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。来源:力扣(LeetCode)链接:https://leet...原创 2020-05-03 20:41:12 · 318 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串(滑动窗口)
Description给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复...原创 2020-05-02 21:32:06 · 227 阅读 · 0 评论 -
LeetCode 820. 单词的压缩编码(后缀树)
Description给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。那么成功...原创 2020-03-28 19:16:52 · 351 阅读 · 0 评论 -
LeetCode 208. 实现 Trie (前缀树)
Description实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.start...原创 2020-03-28 19:13:53 · 180 阅读 · 0 评论 -
LeetCode 409. 最长回文串
Description给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。Solutionclass Solu...原创 2020-03-19 20:49:31 · 149 阅读 · 0 评论 -
面试金典 01.06. 字符串压缩
Description字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1: 输入:"aabcccccaaa" 输出:"a2b1c5a3"示例2: 输入:"abbccd" 输出:"abbccd"...原创 2020-03-16 20:57:40 · 173 阅读 · 0 评论