
String
文章平均质量分 56
字符串问题
NLP_victor
这个作者很懒,什么都没留下…
展开
-
剑指OfferII-字符串-14.15.32.33-变位词
14. 字符串中的变位词题目链接给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。换句话说,第一个字符串的排列之一是第二个字符串的 子串。输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").输入: s1= "ab" s2 = "eidboaoo"输出: False题解:双指针+哈希表package String;public class checkInclusion14 {原创 2022-05-03 21:13:29 · 719 阅读 · 0 评论 -
LeetCode567. 字符串的排列(滑动窗口、Counter)
1、题目描述https://leetcode-cn.com/problems/permutation-in-string/给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。输入的字符串只包含小写字母 两个字符串的长度都在 [1, 10,000] 之间输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").输入: s1= "a...原创 2021-02-10 22:37:03 · 340 阅读 · 0 评论 -
LeetCode1208. 尽可能使字符串相等(滑动窗口)
1、题目描述https://leetcode-cn.com/problems/get-equal-substrings-within-budget/给你两个长度相同的字符串,s 和 t。只含小写英文字母。将 s中的第i个字符变到t中的第 i 个字符需要|s[i] - t[i]|的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。 用于变更字符串的最大预算是maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果...原创 2021-02-05 22:37:35 · 298 阅读 · 0 评论 -
LeetCode424. 替换后的最长重复字符(双指针:滑动窗口)
1、题目描述https://leetcode-cn.com/problems/longest-repeating-character-replacement/给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换k次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过10^4。输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。输入:s = "AABCA...原创 2021-02-02 19:58:25 · 328 阅读 · 2 评论 -
LeetCode842. 将数组拆分成斐波那契序列(回溯+剪枝)
1、题目描述https://leetcode-cn.com/problems/split-array-into-fibonacci-sequence/给定一个数字字符串S,比如S = "123456579",我们可以将它分成斐波那契式的序列[123, 456, 579]。另外,请注意,将字符串拆分成小块时,每个块的数字一定不要以零开头,除非这个块是数字 0 本身。返回从 S 拆分出来的任意一组斐波那契式的序列块,如果不能拆分则返回 []。输入:"123456579"输出:[...原创 2020-12-08 17:29:12 · 255 阅读 · 0 评论 -
LeetCode1370. 上升下降字符串(桶计数)
1、题目描述https://leetcode-cn.com/problems/increasing-decreasing-string/给你一个字符串s,请你根据下面的算法重新构造字符串:从 s中选出 最小的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它 接在结果字符串后面。 重复步骤 2 ,直到你没法从 s中选择字符。 从 s中选出 最大的字符,将它 接在结果字符串的后面。 从 s剩余字符中选出最大...原创 2020-11-25 21:59:39 · 245 阅读 · 0 评论 -
LeetCode763. 划分字母区间(dict+双指针)
1、题目描述https://leetcode-cn.com/problems/partition-labels/字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]【解释】划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadef原创 2020-10-23 10:52:31 · 235 阅读 · 0 评论 -
LeetCode1002. 查找常用字符(哈希表、count)
1、题目描述https://leetcode-cn.com/problems/find-common-characters/给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。输入:["bella","label","roller"]输出:["e","l","l"]输入:["cool","lock",原创 2020-10-14 23:58:22 · 2805 阅读 · 2 评论 -
LeetCode79. 单词搜索(DFS+4种directions)
1、题目描述https://leetcode-cn.com/problems/word-search/给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回原创 2020-09-13 19:10:14 · 280 阅读 · 0 评论 -
LeetCode541. 反转字符串 II(每隔 2k 个字符的前 k 个字符反转)
1、题目描述https://leetcode-cn.com/problems/reverse-string-ii/给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。通俗一点说,每隔k个反转k个,末尾不够k个时全部反转输入: s = "abcdefg", k = 2输出: "bacdfeg".原创 2020-08-30 22:59:31 · 643 阅读 · 0 评论 -
LeetCode17. 电话号码的字母组合(Python)
1、题目描述https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案.原创 2020-08-26 12:34:25 · 384 阅读 · 0 评论 -
数学-LeetCode43. 字符串相乘
1、题目描述https://leetcode-cn.com/problems/multiply-strings/给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。num1 和 num2 的长度小于110。 num1 和 num2 只包含数字 0-9。 num1 和 num2 均不以零开头,除非是数字 0 本身。 不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。2、代码原创 2020-08-13 23:52:45 · 151 阅读 · 1 评论 -
字符串-LeetCode696. 计数二进制子串
1、题目描述https://leetcode-cn.com/problems/count-binary-substrings/给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出.原创 2020-08-10 23:37:16 · 198 阅读 · 0 评论 -
双指针-LeetCode125. 验证回文串
1、题目描述https://leetcode-cn.com/problems/valid-palindrome/给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。输入: "A man, a plan, a canal: Panama"输出: true输入: "race a car"输出: false2、代码详解双指针class Solution(object): def isPali原创 2020-08-03 19:20:58 · 220 阅读 · 0 评论 -
数学-LeetCode415. 字符串相加
1、题目描述https://leetcode-cn.com/problems/add-strings/给定两个字符串形式的非负整数num1 和num2,计算它们的和。注意:num1 和num2的长度都小于 5100. num1 和num2 都只包含数字0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库,也不能直接将输入的字符串转换为整数形式。2、代码详解数学:模拟人工加法class Solution(object)...原创 2020-08-03 17:14:20 · 172 阅读 · 0 评论 -
双指针-LeetCode392. 判断子序列
1、题目描述https://leetcode-cn.com/problems/is-subsequence/给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。s="..原创 2020-07-27 22:07:36 · 216 阅读 · 0 评论 -
字符串-LeetCode6. Z 字形变换
1、题目描述https://leetcode-cn.com/problems/zigzag-conversion/将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。输入: s = "LEETC...原创 2020-07-27 12:18:16 · 267 阅读 · 0 评论 -
字符串、回溯-LeetCode93. 复原IP地址
1、题目描述https://leetcode-cn.com/problems/restore-ip-addresses/给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]2、代码详解暴力class Solution(object): d原创 2020-07-23 17:33:09 · 258 阅读 · 0 评论 -
DP-LeetCode139. 单词拆分
1、题目描述https://leetcode-cn.com/problems/word-break/给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。2、代码详解动态规划class Solution(object): def wordBreak(self, s, wordDict): """ .原创 2020-07-09 11:45:20 · 205 阅读 · 0 评论 -
循环节-LeetCode466. 统计重复个数
1、题目描述字节困难题https://leetcode-cn.com/problems/count-the-repetitions/2、代码详解找出循环节https://leetcode-cn.com/problems/count-the-repetitions/solution/xiong-mao-shua-ti-python3-xun-huan-jie-tui-jian-yi/class Solution(object): def getMaxRepetit原创 2020-07-05 17:50:38 · 376 阅读 · 0 评论 -
DP-LeetCode44. 通配符匹配(任意字符串包括空)
1、题目描述'?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。https://leetcode-cn.com/problems/wildcard-matching/2、代码详解class Solution(object): def isMatch(self, s, p): """ '?' 可以匹配任何单个字符 '*' 可以匹配任意字符串(包括空字符串) """原创 2020-06-23 19:50:00 · 516 阅读 · 0 评论 -
字符串-LeetCode14. 最长公共前缀
1、题目描述编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。2、代码详解使用 zip 根据字符串下标合并成数组,判断合并后数组里元素是否都相同(用set())zip用法:https://www.runoob.com/python/python-func-zip.html时间复杂度 O(N) ,N 表示数组中最短字符串长度空间复杂度 O(1),使用的变量为自然数个class Solution(object): def longe.原创 2020-05-28 23:23:25 · 241 阅读 · 0 评论 -
LeetCode5. 最长回文子串647. 回文子串(双指针、中心扩展算法)
1、题目描述给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。2、代码详解class Solution(object): def longestPalindrome(self, s): res = "" for i in range(len(s)): # 法一 ...原创 2020-05-06 22:37:49 · 352 阅读 · 0 评论 -
LeetCode—Python—242. 有效的字母异位词(哈希表)
1、题目描述给定两个字符串s和t,编写一个函数来判断t是否是s的一个字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能...原创 2019-03-17 23:52:53 · 314 阅读 · 0 评论 -
LeetCode—Python—344.反转字符串
练习大纲344.反正转字符串LeetCode :反转字符串中的单词IIIhttps://leetcode-cn.com/problems/reverse-words-in-a-string-iii/LeetCode :除自身以外数组的乘积https://leetcode-cn.com/problems/product-of-array-...原创 2019-03-02 13:45:16 · 311 阅读 · 0 评论