字符串
文章平均质量分 63
字符串相关常见算法
思变。
知道的越多,不知道的越多
展开
-
151. 反转字符串中的单词 (中等)
利用split(“ ”)根据空格分割字符串,后再循环分割结果,依次去除空格append到StringBuilder,再append空格即可。= ’ ’ 的下标 i,这里以第一个单词进行为演示:" eulb si yks eht" ==反转=> " blue si yks eht" ==移位=> “blue si yks eht”返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。如果字符串在你使用的编程语言中是一种可变数据类型,请尝试使用 O(1) 额外空间复杂度的 原地 解法。原创 2023-04-13 22:12:45 · 56 阅读 · 0 评论 -
【字符串 + 双指针】剑指 Offer 05. 替换空格
字符串,判断每个字符是否 = ’ ',根据不同情况向StringBuilder中拼接即可,时间复杂度O(n),使用了额外空间StringBuilder,复杂度为O(n)3、利用双指针这里从后向前根据情况填充字符即可。占三个字符,而原字符串已经存在一个空格,再加上。就是返回字符串最终的长度,需要拼接的。中的每个空格替换成"%20"。指向最终字符串结尾,这样一来,的双空格,所以得出以上结论。请实现一个函数,把字符串。两个空格,最后得出的。原创 2023-04-12 16:42:21 · 87 阅读 · 0 评论 -
【字符串 + 双指针】541.反转字符串 II(简单)
与思路一相同,实现方式略微不同。,从字符串开头算起,每计数至。个,则将剩余字符全部反转。个字符,其余字符保持原样。原创 2023-04-12 09:51:32 · 93 阅读 · 0 评论 -
【字符串】344. 反转字符串(简单)
定义双指针left 和 right, left指向数组头部元素,right指向数组尾部,每次两两交换,同时将left-- , right++,注意:因为是两两相交换,所以循环s.length() / 2次。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组。输入数组、使用 O(1) 的额外空间解决这一问题。这样就可以实现使用O(1)的空间复杂度完成此题目。不要给另外的数组分配额外的空间,你必须。原创 2023-04-12 09:49:58 · 56 阅读 · 0 评论 -
【哈希表】242. 有效的字母异位词(简单)
利用数组hash,因为字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下标0,相应的字符z映射为下标25,创建一个长度为26的数组即可,将每一个英文字符作为下标在数组中标识出来,标识的办法是循环s将value++,再循环t将value–,最后ret数组中但凡有一个元素的value!= 0,则s和t不是有效的异位词。后再循环t的每个字符,get到相对应的value值,每次 - 1,最后判断map中是否有元素不等于0,如果有返回false,没有则代表s和t是有效的异位词。原创 2023-04-10 17:34:32 · 67 阅读 · 0 评论 -
【哈希表】383. 赎金信 (简单)
383. 赎金信 (简单)原创 2023-04-11 11:03:47 · 90 阅读 · 0 评论