字符串
文章平均质量分 55
月亮不打烊..
Java后端,分享日常的学习以及踩过的坑
展开
-
求字符串中重复字符的长度以及字符串的压缩
1.重复字符的长度1.用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab 的长度为1。定义一个index作为元素比较的下标,进行相邻元素之间的比较,若 a[index] == a[index - 1],则count+1,if (count > maxlen) { maxlen = count;}(求最长还要拿maxlen与count进行比较),若不相等count=1;然后递归调用,当index == a.length时,终止递归,返回maxlen;原创 2023-04-02 16:06:58 · 347 阅读 · 1 评论 -
字符串的全排列
通过递归实现,定a求bc的排列以此类推,注意每次交换完成后要回复到原来的顺序,避免遗漏。若字符串中有相同字母,则要进行去重,去重的关键在于与它后面步重复的元素交换,判断交换的两元素是否相等,相等则不交换。字典序解决给定一种排列,求基于字典序的下一种排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和 cba。将字符串中的每个字符看成二叉树的一个节点,根节点为空,每个节点都会有两种选择:要和不要两种选择。原创 2023-04-02 15:34:02 · 439 阅读 · 0 评论 -
回文判断以及最长回文子串
给定一个字符串,判断是不是回文字符串及求它的最长回文子串的长度。原创 2023-04-02 15:13:26 · 290 阅读 · 0 评论 -
字符串包含
4.先把长字符串a中的所有字符都放入一个Hashtable里,然后轮询短字符串b,看短字符串b的每个字符是否都在Hashtable里,如果都存在,说明长字符串a包含短字符串b,否则,说明不包含。利用上面字母和素数的对应关系,对应第二个字符串中的字母,然后轮询,用每个字母对应的素数除前面得到的整数。如前所述,算法的时间复杂度为O(m+n)的最好的情况为O(n)(遍历短的字符串的第一个数,与长字符串素数的乘积相除,即出现余数,便可退出程序,返回false),n为长字串的长度,空间复杂度为O(1)。原创 2023-04-02 14:58:17 · 72 阅读 · 0 评论 -
旋转字符串
给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符’a’和’b’移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。的截取方法:substring(n):取从开头n个字符外的所有字符(n-str.leng-1),substring(m,n):取m-n位置的字符(含头不含尾)。时间复杂度为O(n),空间复杂度为O(1),达到了题目的要求。原创 2023-04-02 14:29:21 · 81 阅读 · 0 评论