【算法练习帖--62--替换后的最长重复字符(Java)】教程文章相关的互联网学习教程文章

[编程题]字符串压缩算法【代码】

输入一串字符,请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。 例如: aac 压缩为 1ac xxxxyyyyyyzbbb 压缩为 3x5yz2b 输入描述:任意长度字符串 输出描述:压缩后的字符串 示例1 输入xxxxyyyyyyzbbb 输出3x5yz2bimport sys s = sys.stdin.readline().strip() def zipstr(s):l=list(s)res=[0] # res.append(l[0])count=0for i in range(0,len(l)):if l[i]==res[-1]:count=count+1else...

算法——反转字符串【代码】

反转字符串 不要使用新的列表,在原列表本身进行字符串反转。class Solution:def reverseString(self, s) -> None:Do not return anything, modify s in-place instead.for i in range(1, len(s)+1):s.append(s.pop(-i))print(s)if __name__ == __main__:s = hellos = list(s)Solution().reverseString(s)反向取值,向弹出s[-1]值再加入列表,再弹出s[-2]值再加入列表,以此类推...直到遍历完整个列表。

如何使用递归压缩字符串? (RLE算法)【代码】

我尝试使用递归来压缩字符串时遇到了一些麻烦. 例如,请考虑以下字符串: qwwwwwwwwweeeeerrtyyyyyqqqqwEErTTT 应用RLE算法后,此字符串将转换为: q9w5e2rt5y4qw2Er3T 在压缩字符串中,“9w”表示9个连续的小写“w”字符的序列. “5e”代表5个连续的小写“e”字符等. 我已经有一个压缩它的代码而没有递归:import java.util.regex.Matcher; import java.util.regex.Pattern; public class Compress {public static String input(Stri...

【算法题】LeetCode125【验证回文字符串】【代码】

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1:输入: "A man, a plan, a canal: Panama" 输出: true示例 2:输入: "race a car" 输出: falseclass Solution {public boolean isPalindrome(String s) {if (s==null) {return true;}int j = s.length() - 1;for (int i = 0; i < j; ) {for (; j > i; ) {char ci = s.charAt(i);char cj...

c# – 如何对字符串数组进行冒泡排序?【代码】

public void BubbleSortArrayString(string[] letters) //change here {bool swap;string temp; //change this toodo{swap = false;for (int index = 0; index < (letters.Length - 1); index++){if (letters[index] > letters[index + 1]) //if first number is greater then second then swap{//swaptemp = letters[index];letters[index] = letters[index + 1];letters[index + 1] = temp;swap = true;}}} while (swap == true)...

js实现算法:找出字符串中最长最多重复的子串【代码】

找出字符串中最长最多重复的子串 var myString = 'aaabcdeeeghhhffiooo';function maxRepeactString(str) {//定义一个对象,对象的每个属性是出现连续重复的字符,属性的属性值是该字符重复的个数var res = {};for(var i =0 ,j = i+1;i <str.length;i++){while(str[i]==str[j]){j++;res[str[i]]=j-i;}}return res;}var maxnum =0 ,maxname;var strmore = maxRepeactString(myString);console.log(strmore);//找出第一个最长重复字符...

算法随笔-替换字符串中的子串【图】

在我们的项目里,经常会将字符串中的指定的内容替换为我们需要的内容,这里我们就来实现这这个小算法。 具体需求则为:将字符串中的指定子串替换为设置的字符串,并返回替换的总数,实现比较简单,主要是指针的运算,下边直接代码展示:#include <iostream> #include <string.h> #include <stdio.h>int StrRepalce(char* nSrc, const char* oldStr, const char* newStr) {if(!nSrc || !oldStr || ! newStr){return 0;}if(0 == strc...

算法试题 - 找出字符流中第一个不重复的元素【代码】

题目 题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 思路 思路:引入两个辅助存储空间。一个Dict存储当前出现的字符以及字符出现的次数,一个List存储当前出现字符。然后每次比较List的第一个字符在Dict中对应的次数,如果为1则输出这个字符,如果不为1则弹出这...

力扣算法题—088扰乱字符串【二叉树】【代码】

给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。 下图是字符串 s1 = "great" 的一种可能的表示形式。great/ \gr eat/ \ / \ g r e at/ \a t在扰乱这个字符串的过程中,我们可以挑选任何一个非叶节点,然后交换它的两个子节点。 例如,如果我们挑选非叶节点 "gr" ,交换它的两个子节点,将会产生扰乱字符串 "rgeat" 。rgeat/ \rg eat/ \ / \ r g e at/ \a ...

字符串全排列算法【代码】

全排列算法 import java.util.List; import java.util.Vector;/*** @author 张琦*全排列*/ public class Quanpailie {static List f(String s){List list = new Vector();if(s.length()==1){list.add(s);return list;}for(int i = 0 ; i< s.length();i++){char x = s.charAt(i);List ls = f(s.substring(0, i)+s.substring(i+1));for(int j = 0; j< ls.size();j++ ){list.add(""+x+ls.get(j));}}return list;}public static void ...

LeetCode 初级算法题(字符串)5.验证回文字符串【代码】

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1:输入: "A man, a plan, a canal: Panama" 输出: true示例 2:输入: "race a car" 输出: falseclass Solution:def isPalindrome(self, s: str) -> bool:import res = re.sub(r'[^a-z0-9]', '', s.lower())return s == s[::-1]

LeetCode 初级算法题(字符串)6.字符串转换整数 (atoi)【代码】

请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对...

LeetCode 初级算法题(字符串)7.实现strStr()【代码】

实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1:输入: haystack = "hello", needle = "ll" 输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba" 输出: -1说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 needle 是空字符串时我们应当返回 0 ...

LeetCode 初级算法题(字符串)8.报数【代码】

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 1 2. 11 3. 21 4. 1211 5. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211。 给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。 注意:整数顺序将表示为一个字符串。 示例 1:输入: 1 输出: "1"示例 ...

LeetCode 初级算法题(字符串)9.最长公共前缀【代码】

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1:输入: ["flower","flow","flight"] 输出: "fl"示例 2:输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。说明: 所有输入只包含小写字母 a-z 。class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:if not strs:return ''s1 = min(strs)s2 = max(strs)for i, s in enumerate(s1):if s != s2[i]...