字符串
字符串
哟米 2000
这个作者很懒,什么都没留下…
展开
-
【LeetCode】C++ :简单题 - 字符串 1370. 上升下降字符串
1370. 上升下降字符串难度简单83给你一个字符串s,请你根据下面的算法重新构造字符串:从s中选出最小的字符,将它接在结果字符串的后面。 从s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它接在结果字符串后面。 重复步骤 2 ,直到你没法从s中选择字符。 从s中选出最大的字符,将它接在结果字符串的后面。 从s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它接在结果字符串后面。 重复步骤 5,直到你没法...原创 2021-02-01 08:54:45 · 97 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 1624. 两个相同字符之间的最长子字符串
1624. 两个相同字符之间的最长子字符串难度简单8给你一个字符串s,请你返回两个相同字符之间的最长子字符串的长度,计算长度时不含这两个字符。如果不存在这样的子字符串,返回-1。子字符串是字符串中的一个连续字符序列。示例 1:输入:s = "aa"输出:0解释:最优的子字符串是两个 'a' 之间的空子字符串。示例 2:输入:s = "abca"输出:2解释:最优的子字符串是 "bc" 。示例 3:输入:s = "cbzxy"输出:-1...原创 2021-02-01 08:53:01 · 425 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 1694. 重新格式化电话号码
1694. 重新格式化电话号码难度简单6给你一个字符串形式的电话号码number。number由数字、空格' '、和破折号'-'组成。请你按下述方式重新格式化电话号码。首先,删除所有的空格和破折号。 其次,将数组从左到右每 3 个一组分块,直到剩下 4 个或更少数字。剩下的数字将按下述规定再分块: 2 个数字:单个含 2 个数字的块。 3 个数字:单个含 3 个数字的块。 4 个数字:两个分别含 2 个数字的块。 最后用破折号将这些块连接起来。注意,重新...原创 2021-02-01 08:58:15 · 369 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 1684. 统计一致字符串的数目
1684. 统计一致字符串的数目难度简单5给你一个由不同字符组成的字符串allowed和一个字符串数组words。如果一个字符串的每一个字符都在allowed中,就称这个字符串是一致字符串。请你返回words数组中一致字符串的数目。示例 1:输入:allowed = "ab", words = ["ad","bd","aaab","baa","badab"]输出:2解释:字符串 "aaab" 和 "baa" 都是一致字符串,因为它们只包含字符 'a'...原创 2021-02-01 08:56:36 · 443 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 1662. 检查两个字符串数组是否相等
1662. 检查两个字符串数组是否相等难度简单6给你两个字符串数组word1和word2。如果两个数组表示的字符串相同,返回true;否则,返回false。数组表示的字符串是由数组中的所有元素按顺序连接形成的字符串。示例 1:输入:word1 = ["ab", "c"], word2 = ["a", "bc"]输出:true解释:word1 表示的字符串为 "ab" + "c" -> "abc"word2 表示的字符串为 "a" + "bc"...原创 2021-02-01 08:56:52 · 249 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 1417. 重新格式化字符串
1417. 重新格式化字符串难度简单13给你一个混合了数字和字母的字符串s,其中的字母均为小写英文字母。请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母后面应该跟着数字,而数字后面应该跟着字母。请你返回重新格式化后的字符串;如果无法按要求重新格式化,则返回一个空字符串。示例 1:输入:s = "a0b1c2"输出:"0a1b2c"解释:"0a1b2c" 中任意两个相邻字符的类型都不同。 "a0b1c2", "0a1b2c", "0c2...原创 2021-01-31 14:53:10 · 283 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 1221. 分割平衡字符串
1221. 分割平衡字符串难度简单80在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。给出一个平衡字符串s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。示例 1:输入:s = "RLRRLLRLRL"输出:4解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。示例 2:输入:s = "RLLLLRRRLR"输出:3解释:s 可以...原创 2021-01-31 14:18:33 · 239 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 859. 亲密字符串
859. 亲密字符串难度简单126给定两个由小写字母构成的字符串A和B,只要我们可以通过交换A中的两个字母得到与B相等的结果,就返回true;否则返回false。交换字母的定义是取两个下标i和j(下标从0开始),只要i!=j就交换A[i]和A[j]处的字符。例如,在"abcd"中交换下标0和下标2的元素可以生成"cbad"。示例 1:输入: A = "ab", B = "ba"输出: true解释: 你可以交换...原创 2021-01-31 13:15:31 · 148 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 804. 唯一摩尔斯密码词
804. 唯一摩尔斯密码词难度简单150国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串,比如:"a"对应".-","b"对应"-...","c"对应"-.-.", 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-","....原创 2021-01-31 12:55:52 · 167 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 917. 仅仅反转字母
917. 仅仅反转字母难度简单73给定一个字符串S,返回“反转后的”字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:"ab-cd"输出:"dc-ba"示例 2:输入:"a-bC-dEf-ghIj"输出:"j-Ih-gfE-dCba"示例 3:输入:"Test1ng-Leet=code-Q!"输出:"Qedo1ct-eeLg=ntse-T!"提示:S.length <= 100 33 <...原创 2021-01-31 12:41:54 · 205 阅读 · 1 评论 -
【LeetCode】C++ :简单题 - 字符串 788. 旋转数字
788. 旋转数字难度简单88我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字,则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方(在这种情况下,它们以不同的方向旋转,换句话说,2 和 5 互为镜像);6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数N, 计算从1...原创 2021-01-31 12:22:00 · 330 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 696. 计数二进制子串
696. 计数二进制子串难度简单331给定一个字符串s,计算具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是连续的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因...原创 2021-01-31 11:17:27 · 156 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 657. 机器人能否返回原点
657. 机器人能否返回原点难度简单186在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在(0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有R(右),L(左),U(上)和D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动...原创 2021-01-31 11:01:28 · 135 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 557. 反转字符串中的单词 III
557. 反转字符串中的单词 III难度简单268给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。双指针class Solution {public: string reverseWords(st...原创 2021-01-31 10:36:26 · 196 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 345. 反转字符串中的元音字母
345. 反转字符串中的元音字母难度简单139编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入:"hello"输出:"holle"示例 2:输入:"leetcode"输出:"leotcede"提示:元音字母不包含字母 "y" 。双指针+ 集合class Solution {public: string reverseVowels(string s) { unordered_set<ch...原创 2021-01-31 10:06:55 · 257 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 551. 学生出勤记录 I
551. 学生出勤记录 I难度简单63给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:'A': Absent,缺勤 'L': Late,迟到 'P': Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例 1:输入: "PPALLP"输出: True示例 2:输入: "PPALLL"输出: False这...原创 2021-01-28 20:57:21 · 302 阅读 · 0 评论 -
2021-01-28【LeetCode】C++ :简单题 - 字符串 521. 最长特殊序列 Ⅰ
521. 最长特殊序列 Ⅰ难度简单87给你两个字符串,请你从这两个字符串中找出最长的特殊序列。「最长特殊序列」定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。输入为两个字符串,输出最长特殊序列的长度。如果不存在,则返回 -1。示例 1:输入: "aba", "cdc"输出: 3解释: 最长特殊序列可为 "aba"...原创 2021-01-28 20:42:04 · 151 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 520. 检测大写字母
520. 检测大写字母难度简单120给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。 单词中所有字母都不是大写,比如"leetcode"。 如果单词不只含有一个字母,只有首字母大写,比如"Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"输出: False注意:输入是由大写和小写拉丁...原创 2021-01-28 20:24:24 · 331 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 459. 重复的子字符串
459. 重复的子字符串难度简单441给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复.原创 2021-01-28 20:07:15 · 308 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 434. 字符串中的单词数
434. 字符串中的单词数难度简单74统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。class Solution {public: int countSegments(string s) { vector<string.原创 2021-01-28 16:23:29 · 196 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 415. 字符串相加
415. 字符串相加难度简单302给定两个字符串形式的非负整数num1和num2,计算它们的和。提示:num1和num2的长度都小于 5100 num1和num2都只包含数字0-9 num1和num2都不包含任何前导零 你不能使用任何內建 BigInteger 库,也不能直接将输入的字符串转换为整数形式这个和两数相加是一样道理的,在链表里面也出现过相同的题目。模拟列竖式计算的过程,主要是一开始以n1 = 0, n2 = 0这样,然后对非空位数字将...原创 2021-01-28 16:17:43 · 218 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 383. 赎金信
383. 赎金信难度简单129给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回true;否则返回false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)注意:你可以假设两个字符串均只含有小写字母。canConstruct("a", "b")...原创 2021-01-28 16:01:32 · 343 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 680. 验证回文字符串 Ⅱ
680. 验证回文字符串 Ⅱ难度简单311给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。双指针法因为这有可能需要删除一个字母,所以我们把验证是否是回文串写进一个函数里面。还是按之前的双指针方法判断字母是否相同,如果遇到一个不相同时,此时就出现了..原创 2021-01-28 11:55:35 · 236 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 125. 验证回文串
125. 验证回文串难度简单319给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false1. 利用内置函数 reverse (筛选+判断)class Solution {public: bool isPalind...原创 2021-01-28 11:10:40 · 269 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 541. 反转字符串 II
541. 反转字符串 II难度简单113给定一个字符串s和一个整数k,你需要对从字符串开头算起的每隔2k个字符的前k个字符进行反转。如果剩余字符少于k个,则将剩余字符全部反转。 如果剩余字符小于2k但大于或等于k个,则反转前k个字符,其余字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"提示:该字符串只包含小写英文字母。 给定字符串的长度和k在[1, 10000]范围内。...原创 2021-01-27 14:48:53 · 155 阅读 · 0 评论 -
【LeetCode】C++ :简单题 - 字符串 344. 反转字符串
344. 反转字符串难度简单346编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输...原创 2021-01-27 14:35:42 · 110 阅读 · 0 评论