LeetCode---String
想飞的盗版鱼
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode(String)--383. 赎金信
leetcode(String)–383. 赎金信1,题目:2,思路:方法一:排序与双指针:1.题目要求magazine中的字母是否可以构成ransomNote,且magazine中的字母不能重复使用。那么对于ransomNote中的每一个字符,都去magazine中查找是否存在(找到一个后,要从magazine中剔除)。2.用暴力查找太慢。借鉴判断字符串相等的思路,双指针分别指向两个字符串的第一个字符,依次对比,双指针一起移动。我们可以将magazine与ransomNote对应的字符数组m原创 2020-06-21 09:42:33 · 218 阅读 · 0 评论 -
leetcode(String)--344. 反转字符串
leetcode(String)–344. 反转字符串1,题目:2,思路:方法一:双指针(简单方法)(自己写的):就是i和j分别指向数组的开始和末尾,当i<j的时候,就交换即可。方法二:主要是运用了char temp = s[i];s[i] = s[length - i];s[length - i] = temp;也就是s[i] = s[length - i];交换。其实实质还是双指针。3,代码:方法一:双指针(简单方法)(自己写的):class Solution {原创 2020-06-19 09:28:34 · 192 阅读 · 0 评论 -
leetcode(String)--893. 特殊等价字符串组
leetcode(String)–893. 特殊等价字符串组1,题目:2,思路:因为所有 A[i] 都具有相同的长度,所以没有必要考虑长度问题了。奇数位和偶数位上的所有字符分别一致,就是一组,如abcde、cdabe,两者奇数位上均是a/c/e,偶数位上都是b/d,最后都能通过有限次的交换得到对方所以,搜集每个字符串中奇数位和偶数位的字符,按字典序排好序后使用Set来筛选,如abcde的奇数位为ace,偶数位为bd,拼接出来加入Set,即acebd;acbde的奇数位为abe,偶数位为cd,原创 2020-06-18 21:08:21 · 206 阅读 · 0 评论 -
leetcode(String)--443. 压缩字符串
leetcode(String)–443. 压缩字符串1,题目:2,思路:方法一:滑动窗口:利用滑动窗口法,左右指针起点都为原数组的首位。实现步骤如下:1.不断右移右指针,使窗口不断增大;2.当窗口内出现一个不同的元素时,就可以将元素及其数量(等于左右指针之差)更新在数组中,然后让左指针指向右指针;3.遍历到最后一个字符时也需要结算,因此将右指针的终点设为数组之外一格。当右指针移到终点时也要更新数组。方法二:双指针:遍历字符串取相同字符序列的首字符存下记录相同字符序原创 2020-06-18 17:33:15 · 201 阅读 · 0 评论 -
leetcode(String)--434. 字符串中的单词数
leetcode(String)–434. 字符串中的单词数1,题目:2,思路:方法一:双指针:用i指向一个单词的开始,再用j来寻找这个单词的末尾,遮掩的话,就找到了一个单词。以此循环。方法二:原地法:if ((i == 0 || s.charAt(i-1) == ’ ') && s.charAt(i) != ’ ') {//通过判断i这个位置的,当前的字符和前一个是否为空格,来判断是否是一个单词。方法三:字符串按空格分割成字符串数组:将字符串按空格分割成字符串数组,判断每原创 2020-06-18 10:15:06 · 161 阅读 · 0 评论 -
leetcode(String)--917. 仅仅反转字母
leetcode(String)–917. 仅仅反转字母1,题目:2,思路:方法一:双指针:这个是普通的方法,就是用双指针来进行转换。方法二:用到了StringBuilder:这里用到了StringBuilder,但是里面的实质还是用了双指针的实质。方法三:反转指针:(1)一个接一个输出 s 的所有字符。当遇到一个字母时,我们希望找到逆序遍历字符串的下一个字母。(2)所以我们这么做:维护一个指针 j 从后往前遍历字符串,当需要字母时就使用它。3,代码:方法一:双指针:class S原创 2020-06-18 09:52:43 · 225 阅读 · 0 评论 -
leetcode(String)--415. 字符串相加
leetcode(String)–415. 字符串相加1,题目:2,思路:方法一:双指针:算法流程: 设定 i,j 两指针分别指向 num1,num2 尾部,模拟人工加法;1.计算进位: 计算 carry = tmp // 10,代表当前位相加是否产生进位;2.添加当前位: 计算 tmp = n1 + n2 + carry,并将当前位 tmp % 10 添加至 res 头部;3.索引溢出处理: 当指针 i或j 走过数字首部后,给 n1,n2 赋值为 0,相当于给 num1,num2 中长度原创 2020-06-17 21:35:15 · 380 阅读 · 0 评论 -
leetcode(String)--709. 转换成小写字母
leetcode(String)–709. 转换成小写字母1,题目:2,思路:方法一:字符相减:先转换成字符数组接着循环这个字符数组,如果是大写就转换成小写。方法二:用到了ASC||码:ASC||码>65,<90就是大写字母,需要进行+32,转换成小写方法三:这个就直接用到了函数了。其实这个方法有违背题意了:直接用到了toLowerCase这个自带的函数。3,代码:方法一:字符相减:class Solution { public String toLowerCas原创 2020-06-17 20:57:38 · 186 阅读 · 0 评论 -
leetcode(string)--58.最后一个单词的长度
leetcode(string)–58.最后一个单词的长度1,题目:2,思路:方法一:从右向左遍历:从右向左遍历,从第一个不是空格的字符开始计数,一旦开始计数,再遇到空格就结束了。方法二:寻找最后一个单词的首部和尾部:先从后过滤掉空格找到单词尾部,再从尾部向前遍历,找到单词头部,最后两者相减,即为单词的长度方法三:用到了自带的函数lastIndexOf:分析可知,给定的限制是一个字符串,会存在首尾有空格的情况,所以先trim()去除首尾空格。最后一个字符串的长度,其实就是字符串去除首尾空原创 2020-06-17 11:22:31 · 188 阅读 · 0 评论 -
leetcode(String)--557.反转字符串中的单词 III
leetcode(String)–557.反转字符串中的单词 III1,题目:2,思路:方法一:简单方法(用了自带的函数):我们将输入字符串中按照空白字符串分开,然后把所有单词放到一个字符串列表中,然后我们逐一遍历每一个字符串并把反转结果连接起来。最后,我们将删除了额外空白字符的字符串返回。方法二:使用 StringBuilder 和 reverse 方法 :这一方法中,我们不使用 split 方法,我们创建临时字符串 word 保存单词,我们在遍历过程中将字符逐一连接在 word 后面,直到原创 2020-06-17 10:42:29 · 201 阅读 · 0 评论 -
leetcode(String)--522 最长特殊序列 II
leetcode(String)–522 最长特殊序列 II1,题目:2,思路:方法一:先按照字符串的长度降序排序,先从最长的字符串开始找只和长度不小于它的字符串进行比较(这样才可能是子序列)方法二:去重+判断是否为子序列3,代码:方法一:class Solution { public int findLUSlength(String[] strs) { //先按照字符串的长度降序排序,先从最长的字符串开始找 //只和长度不小于它的字原创 2020-05-22 21:27:33 · 295 阅读 · 0 评论 -
leetcode(String)--521 最长特殊序列 Ⅰ
leetcode(String)–521 最长特殊序列 Ⅰ1,题目:2,思路:字符串 aa 和 bb 共有 3 种情况:1,a=b。如果两个字符串相同,则没有特殊子序列,返回 -1。2,length(a)==length(b) 且 a !=b。例如:abcabc 和abdabd。这种情况下,一个字符串一定不会是另外一个字符串的子序列,因此可以将任意一个字符串看作是特殊子序列,返回 length(a)或 length(b)。3,length(a) !=length(b)。例如:abc原创 2020-05-19 11:59:37 · 211 阅读 · 0 评论 -
leetcode(String)--520 检测大写字母
leetcode(String)–520 检测大写字母1,题目:2,思路:方法一:声明cnt记录大写字母的个数;声明index记录大写字母的位置索引;当cnt 等于 word.length,即所有字母都大写,返回true;或者,当cnt 等于1,且index == 0,即只有首个字母是大写时,返回true;或者,当cnt==0,即所有字母均小写时,返回true;当cnt>1且cnt<word.length时,返回false;当cnt==1,但index!=0,即有一个大写原创 2020-05-18 21:54:33 · 193 阅读 · 0 评论
分享