随笔分类 -  leetcode-字符串

摘要:题目: 解答: 思路: 回文数是对称的。 能构成回文数的条件是:一个字符串里面最多只有一个字符,它的数量是奇数,超过一个字符的数量为奇数就不可能构成回文串。 即:两个及以上的字符出现次数为奇,就不是回文串。 1 class Solution { 2 public: 3 bool canPermute 阅读全文
posted @ 2020-05-04 09:49 梦醒潇湘 阅读(180) 评论(0) 推荐(0)
摘要:题目: 解答: 1 class Solution { 2 public: 3 string replaceSpaces(string S, int length) 4 { 5 string ans; 6 int i=0; 7 for(auto c:S) 8 { 9 if(c==' ') 10 { 1 阅读全文
posted @ 2020-05-04 09:44 梦醒潇湘 阅读(161) 评论(0) 推荐(0)
摘要:题目: 解答: 思路:哈希。 需要满足两个条件: 两个字符串长度相同; 两个字符串中包含的相同字符,数量相同; 1 class Solution { 2 public: 3 bool CheckPermutation(string s1, string s2) 4 { 5 if (s1.size() 阅读全文
posted @ 2020-05-03 23:25 梦醒潇湘 阅读(220) 评论(0) 推荐(0)
摘要:题目: 解答: 1 class Solution { 2 public: 3 int removePalindromeSub(string s) 4 { 5 if (s.size() == 0) 6 { 7 return 0; 8 } 9 for (int left = 0, right = s.s 阅读全文
posted @ 2020-05-03 23:20 梦醒潇湘 阅读(200) 评论(0) 推荐(0)
摘要:题目: 解答: 1 class Solution { 2 public: 3 string freqAlphabets(string s) 4 { 5 string ans; 6 for (int i = 0; i < s.size(); ++i) 7 { 8 if (i + 2 < s.size( 阅读全文
posted @ 2020-05-03 23:15 梦醒潇湘 阅读(198) 评论(0) 推荐(0)
摘要:题目: 解答: 把L看作1,R看作-1,构建前缀和,当前缀和为0时,说明LR个数相等。返回前缀和中0的个数。 1 class Solution { 2 public: 3 int balancedStringSplit(string s) 4 { 5 if (s.size() < 2) 6 { 7 阅读全文
posted @ 2020-05-03 23:13 梦醒潇湘 阅读(193) 评论(0) 推荐(0)
摘要:题目: 解答: 思路就是先计算每个字符串中,26个字母每个出现的次数(fun函数的功能),然后就是二分查找找出答案。这里二分查找用的函数是标准库的 upper_bound。 1 class Solution { 2 public: 3 vector<int> numSmallerByFrequenc 阅读全文
posted @ 2020-05-03 23:00 梦醒潇湘 阅读(182) 评论(0) 推荐(0)
摘要:题目: 解法: 1 class Solution { 2 public: 3 string defangIPaddr(string address) 4 { 5 string res ; 6 7 for ( char c : address ) 8 { 9 if ( c == '.' ) 10 { 阅读全文
posted @ 2020-05-03 22:49 梦醒潇湘 阅读(142) 评论(0) 推荐(0)
摘要:题目: 解答: 1 class Solution { 2 public: 3 bool isLongPressedName(string name, string typed) 4 { 5 int indexN = 0; 6 int indexT = 0; 7 8 // 或的原因是防止typed后面 阅读全文
posted @ 2020-05-03 22:45 梦醒潇湘 阅读(170) 评论(0) 推荐(0)
摘要:题目: 解答: 用双指针进行判断,当两边都是字母的时候就交换位置,否则,指向不是字母的指针移动,是字母的指针则保持不动,等待交换位置。 1 class Solution { 2 public: 3 string reverseOnlyLetters(string S) 4 { 5 int begin 阅读全文
posted @ 2020-05-03 22:37 梦醒潇湘 阅读(146) 评论(0) 推荐(0)
摘要:题目: 解答: 只有两种情况下会返回True 1、有两个不一样的字母,交换位置后两个字母相等 2、所有字母都一样,则必须存在重复的字母 1 class Solution { 2 public: 3 bool buddyStrings(string A, string B) 4 { 5 if(A.le 阅读全文
posted @ 2020-05-03 21:31 梦醒潇湘 阅读(175) 评论(0) 推荐(0)
摘要:题目: 解答: 先用transform函数将字符串转为小写,再遍历字符串搜索单词,建立map 对应的key-value关系,key是单词,value是单词出现次数。 再遍历banned数组,对这些ban的单词出现次数设为INT_MIN,再创建一个迭代器遍历map,找到最大value对应的单词即可。 阅读全文
posted @ 2020-05-03 21:25 梦醒潇湘 阅读(168) 评论(0) 推荐(0)
摘要:题目: 解答: 方法一:暴力解法【通过】 思路: 遍历从 1 到 N 的每个数字 X,判断 X 是否为好数。 如果 X 中存在 3、4、7 这样的无效数字,则 X 不是一个好数。 如果 X 中不存在 2、5、6、9 这样的旋转后会变成不同的数字,则 X 不是一个好数。 否则,X 可以旋转成一个不同的 阅读全文
posted @ 2020-05-03 21:21 梦醒潇湘 阅读(374) 评论(0) 推荐(0)
摘要:题目: 解答: 利用ASCII值大小写之间相差32的性质,遇到大写的字母,加上32就是相应的小写字母。 1 class Solution { 2 public: 3 string toLowerCase(string str) 4 { 5 if (str.size() <= 0) 6 { 7 ret 阅读全文
posted @ 2020-05-03 21:16 梦醒潇湘 阅读(201) 评论(0) 推荐(0)
摘要:题目: 解答: 方法一: 本题的思路和前面的 647. 回文子串的思路相同, 找到每一个满足当前字符和前一个字符组合起来为 '01' 或者 '10' 的字符位置, 然后向前后进行扩展. 本题条件中也需要统计重复出现的字符串个数, 即位置不同的也需要统计, 所以跟前面的题目意思相同 1 class S 阅读全文
posted @ 2020-05-03 21:12 梦醒潇湘 阅读(228) 评论(0) 推荐(0)
摘要:题目: 解答: 重复累加,当B.size()+temp.size()<n*A.size()时仍不是子串时,就可以判断false了! 原理是因为继续累加temp得到的知识重复的结果,没有意义。 1 class Solution { 2 public: 3 int repeatedStringMatch 阅读全文
posted @ 2020-05-03 21:02 梦醒潇湘 阅读(208) 评论(0) 推荐(0)
摘要:题目: 解答: 方法一:暴力法 算法: 对于给定字符串中的每个索 i,让我们删除该字符,然后检查结果字符串是否是回文。如果是(或者原始字符串是回文),那么我们将返回 true。 方法二:双指针 最重要一点:只能去掉一个字符1、左指针从第0位开始,右指针从最后一位开始2、定义一个bool容器,用于限定 阅读全文
posted @ 2020-05-03 20:58 梦醒潇湘 阅读(201) 评论(0) 推荐(0)
摘要:题目: 解法: 我们可以模拟每个指令后机器人所在的位置。 算法: 一开始,机器人在 (x, y) = (0, 0)。如果指令是 'U',机器人会走到 (x, y-1),如果指令是 'R',机器人会走到 (x, y) = (x+1, y),以此类推。 1 class Solution { 2 publ 阅读全文
posted @ 2020-05-03 20:52 梦醒潇湘 阅读(161) 评论(0) 推荐(0)
摘要:题目: 解法: 方法一:先反转整个字符串,然后在反转每个单词。 方法二:迭代器。 1 class Solution { 2 public: 3 4 string reverseWords(string s) 5 { 6 string::iterator it=s.begin(), bg=it; 7 阅读全文
posted @ 2020-05-03 20:47 梦醒潇湘 阅读(177) 评论(0) 推荐(0)
摘要:题目: 解答: 此题题目说的很绕,就是 2k 一组,翻转 k 个,如果不够 k ,全部翻转该组。即条件判断是否满 k 个即可。 1 class Solution { 2 public: 3 string reverseStr(string s, int k) 4 { 5 bool flag = fa 阅读全文
posted @ 2020-05-03 20:36 梦醒潇湘 阅读(139) 评论(0) 推荐(0)