
字符串
文章平均质量分 93
c++
Crystal_Coding
这个作者很懒,什么都没留下…
展开
-
leetcode1370. 上升下降字符串/桶计数
文章目录题目:1370. 上升下降字符串基本思想:桶计数(哈希)题目:1370. 上升下降字符串给你一个字符串 s ,请你根据下面的算法重新构造字符串:从 s 中选出 最小 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最小 的字符,且该字符比上一个添加的字符大,将它 接在 结果字符串后面。重复步骤 2 ,直到你没法从 s 中选择字符。从 s 中选出 最大 的字符,将它 接在 结果字符串的后面。从 s 剩余字符中选出 最大 的字符,且该字符比上一个添加的字符小,将它 接在 结果原创 2020-11-25 10:53:07 · 245 阅读 · 0 评论 -
leetcode242. 有效的字母异位词
文章目录题目:242. 有效的字母异位词基本思想:map题目:242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?来源:力扣(L原创 2020-11-22 19:13:14 · 252 阅读 · 0 评论 -
leetcode402. 移掉K位数字
文章目录402. 移掉K位数字基本思想:贪心+单调栈402. 移掉K位数字给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = "10200", k = 1输出: "200"原创 2020-11-15 15:55:18 · 204 阅读 · 0 评论 -
leetcode925. 长按键入
文章目录题目:925. 长按键入基本思想:双指针题目:925. 长按键入你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。示例 1:输入:name = "alex", typed = "aaleex"输出:true解释:'alex' 中的 'a' 和 'e' 被长按。示例 2:输入:name = "s原创 2020-10-21 15:33:29 · 183 阅读 · 0 评论 -
leetcode344. 反转字符串/双指针
文章目录题目:344. 反转字符串基本思想:双指针题目:344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a"原创 2020-10-08 18:42:34 · 118 阅读 · 0 评论 -
leetcode557. 反转字符串中的单词 III
文章目录题目:557. 反转字符串中的单词 III基本思想:原地反转题目:557. 反转字符串中的单词 III给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。来源:力扣(LeetCode)链接:https://leetcode-cn.com原创 2020-08-30 09:48:25 · 155 阅读 · 0 评论 -
leetcode459. 重复的子字符串
文章目录题目:459. 重复的子字符串基本思想:做除法题目:459. 重复的子字符串给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串原创 2020-08-24 20:31:53 · 242 阅读 · 0 评论 -
leetcode.20.有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "...原创 2019-09-26 19:12:06 · 94 阅读 · 0 评论 -
leetcode43. 字符串相乘
文章目录题目:43. 字符串相乘基本思想:每一位相乘做加法基本思想:直接做乘法放到结果位置题目:43. 字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 和 num2 只原创 2020-08-13 17:25:22 · 155 阅读 · 0 评论 -
leetcode696. 计数二进制子串
文章目录题目:696. 计数二进制子串基本思想题目:696. 计数二进制子串给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的原创 2020-08-10 16:32:01 · 264 阅读 · 0 评论 -
leetcode415. 字符串相加
文章目录题目:415. 字符串相加基本思想:模拟加法题目:415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-stri原创 2020-08-03 15:02:52 · 113 阅读 · 0 评论 -
leetcode394. 字符串解码
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例:s = "3[a]2[bc]", 返回 "aaabcbc".s = "3[a2[c]]", 返原创 2020-05-28 22:37:24 · 165 阅读 · 0 评论 -
leetcode567. 字符串的排列/滑动窗口
给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False 注意:输入的字符串只包含小写字母两个字符串的长度都在 [1, 10,000] 之间来源:力扣(LeetCode)链接:htt原创 2020-05-24 09:22:39 · 230 阅读 · 0 评论 -
leetcode680. 验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。完整代码如果当前原创 2020-05-09 18:43:56 · 169 阅读 · 0 评论 -
leetcode409. 最长回文串
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。完整代码基本思想:定义map统计每一个字母出现的次数遍历...原创 2020-03-19 18:14:28 · 164 阅读 · 0 评论 -
String Shifting(今日头条2017秋招真题)
题目链接题目我们规定对一个字符串的shift操作如下:shift(“ABCD”, 0) = “ABCD”shift(“ABCD”, 1) = “BCDA”shift(“ABCD”, 2) = “CDAB”换言之, 我们把最左侧的N个字符剪切下来, 按序附加到了右侧。给定一个长度为n的字符串,我们规定最多可以进行n次向左的循环shift操作。如果shift(string, x) = s...原创 2020-03-26 17:24:50 · 347 阅读 · 0 评论 -
leetcode1160. 拼写单词
给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。示例 1:输入:words = ["cat","bt","hat"...原创 2020-03-18 09:45:18 · 241 阅读 · 0 评论 -
leetcode面试题 01.06. 字符串压缩
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1: 输入:"aabcccccaaa" 输出:"a2b1c5a3"示例2:输入:"abbccd" 输出:"abbccd" 解释:"abbccd"压...原创 2020-03-16 15:57:55 · 230 阅读 · 0 评论 -
leetcode647.回文子串/动态规划,中心扩展法
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa".注意:输入的...原创 2020-02-25 15:54:59 · 240 阅读 · 2 评论 -
leetcode76.最小覆盖子串/滑动窗口
给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样的子串,我们保证它是唯一的答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/...原创 2020-01-20 20:49:45 · 215 阅读 · 0 评论 -
leetcode49.字母异位次分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。来源:力扣(LeetCode)链...原创 2020-01-10 14:43:23 · 180 阅读 · 0 评论 -
剑指offer——表示数值的字符串
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。从题目中分析出来的信息1.e或者 .只能出现一次,否则:见2.2.e和.同时出现时,e要在.后面出现3.+ - 第一次出现:开头或者e之...原创 2019-10-19 18:19:43 · 137 阅读 · 0 评论 -
剑指offer——打印从1到最大的n位数
题目打印从1到最大的n位数,举例:n=2,输出:1,2,3,……,99完整代码特别注意: 这道题中并没有说明是几位数,如果是int型或者long型等,直接定义成相应的类型,进行打印输出就可以了。但是,这道题并非如此,它是一道大数问题,我们无法预知这个数到底有多少位,那对于这种问题,我们常用字符串来表示大数。基本思想:定义一个长度为n+1的数组,用来存储这个数,初始情况下每一位都是‘0’,...原创 2020-01-02 15:44:07 · 139 阅读 · 0 评论 -
Leetcode3.无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke...原创 2019-09-21 21:42:17 · 223 阅读 · 0 评论 -
leetcode22.括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parentheses著作权归领扣网络所...原创 2019-12-26 10:36:42 · 267 阅读 · 0 评论 -
c++中char转换成string
c++中char转换成stringchar c='a';string str(1,c);原创 2019-12-24 19:00:50 · 1869 阅读 · 0 评论 -
剑指offer67.把字符串转换成整数
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入+2147483647 1a33输出2147483647 0完整代码这道题要注意溢出条件的判断!!!class S...原创 2019-11-27 20:23:35 · 102 阅读 · 0 评论 -
剑指offer58.(1)翻转单词顺序序列
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?完整代码1.首先将整个...原创 2019-11-24 13:56:04 · 233 阅读 · 0 评论 -
剑指offer58.(2)左旋转字符串
题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!完整代码首先要明确一点,长度为6的字符串,左移1位和左移7位是一样的结果。其实就是将前K(K&...原创 2019-11-21 20:15:21 · 127 阅读 · 0 评论 -
剑指offer38.字符串的排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。完整代码基本思想:从小问题出发,先计算前i个的全排列,一直计算到最后。折腾了半天,我还是用暴力ac了,尝试了下递归,结果超了内...原创 2019-11-20 21:49:31 · 176 阅读 · 0 评论 -
leetcode32.最长有效括号/动态规划,栈,正向逆向结合
给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-valid-par...原创 2019-11-16 17:28:47 · 174 阅读 · 0 评论 -
剑指offer——第一个只出现一次的字符
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).完整代码哈希数组法class Solution {public: int FirstNotRepeatingChar(string str) { int m[256]={0}; f...原创 2019-11-07 19:35:06 · 120 阅读 · 0 评论 -
leetcode6. Z 字形变换
leetcode6. Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将...原创 2019-11-07 08:27:23 · 271 阅读 · 0 评论 -
leetcode5.最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substri...原创 2019-11-05 14:45:07 · 305 阅读 · 0 评论 -
剑指offer50.字符流中第一个不重复的字符
题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。算法思想:思想1:定义一个大小为256的哈希数组,用来统计每一个字符出现的次数。从后向前遍历字符串,如果当前...原创 2019-10-19 20:05:56 · 173 阅读 · 0 评论 -
c++中读入一个字符串数组
#include<bits/stdc++.h>using namespace std;int main(){ vector<string> text; string s; while(getline(cin,s)){ text.push_back(s); if(cin.get()=='\n')//直接回车...原创 2019-10-18 14:22:05 · 2685 阅读 · 0 评论 -
leetcode61.二进制求和
题目描述给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-binar...原创 2019-10-16 21:23:44 · 140 阅读 · 0 评论 -
c++调用函数实现字符串的翻转
reverse(s.begin(),s.end())#include<bits/stdc++.h>using namespace std;int main(){ string s="qqaa"; reverse(s.begin(),s.end());//该函数包含在<algorithm>头文件中 cout<<s<<...原创 2019-10-16 20:35:45 · 272 阅读 · 0 评论 -
剑指offer——正则表达式匹配
题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配。解题思想分四种情况考虑:1.字符串为空,模式串为空,–>匹配2.字符串为空,模式串不为...原创 2019-10-16 19:33:54 · 259 阅读 · 0 评论 -
Leetcode58.最后一个单词的长度
给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/length-of-last-word著作权归领扣网络所有。...原创 2019-10-09 18:38:58 · 181 阅读 · 0 评论