输出个数最多的连续的字符
2013-04-22 13:01
176 查看
问题:
给定一个字符串,输出个数最多的连续的字符(不含空格)。
比如:
"this is a sentence" => [t, h, i, s, i, s, a, s, e, n, t, e, n, c, e]
"thiis iss a senntencee" => [i, s, n, e]
"thiisss iss a senntttenceee" => [s, t, e]
"thiisss iss a sennnntttenceee" =>
public class Solution {
public static void main(String[] args) {
String str = "thiisss iss a senntttenceee";
ArrayList<Character> list = new Solution().getMostFrequentChars(str);
for (Character c : list) {
System.out.print(c + " ");
}
}
public void add(ArrayList<Character> list, int count, int preMaxCount, char current) {
if (current == ' ') return;
if (count > preMaxCount) {
list.clear();
list.add(current);
} else if (count == preMaxCount) {
list.add(current);
}
}
public ArrayList<Character> getMostFrequentChars(String str) {
ArrayList<Character> list = new ArrayList<Character>();
if (str == null || str.length() == 0) return list;
char current = str.charAt(0);
int count = 1;
int preMaxCount = -1;
for (int i = 1; i < str.length(); i++) {
if (str.charAt(i) == current) {
count++;
} else {
if (count >= preMaxCount) {
add(list, count, preMaxCount, current);
if (current != ' ') preMaxCount = count;
}
current = str.charAt(i);
count = 1;
}
}
add(list, count, preMaxCount, current);
return list;
}
}
给定一个字符串,输出个数最多的连续的字符(不含空格)。
比如:
"this is a sentence" => [t, h, i, s, i, s, a, s, e, n, t, e, n, c, e]
"thiis iss a senntencee" => [i, s, n, e]
"thiisss iss a senntttenceee" => [s, t, e]
"thiisss iss a sennnntttenceee" =>
public class Solution {
public static void main(String[] args) {
String str = "thiisss iss a senntttenceee";
ArrayList<Character> list = new Solution().getMostFrequentChars(str);
for (Character c : list) {
System.out.print(c + " ");
}
}
public void add(ArrayList<Character> list, int count, int preMaxCount, char current) {
if (current == ' ') return;
if (count > preMaxCount) {
list.clear();
list.add(current);
} else if (count == preMaxCount) {
list.add(current);
}
}
public ArrayList<Character> getMostFrequentChars(String str) {
ArrayList<Character> list = new ArrayList<Character>();
if (str == null || str.length() == 0) return list;
char current = str.charAt(0);
int count = 1;
int preMaxCount = -1;
for (int i = 1; i < str.length(); i++) {
if (str.charAt(i) == current) {
count++;
} else {
if (count >= preMaxCount) {
add(list, count, preMaxCount, current);
if (current != ' ') preMaxCount = count;
}
current = str.charAt(i);
count = 1;
}
}
add(list, count, preMaxCount, current);
return list;
}
}
相关文章推荐
- 【work】输出连续最多的字符
- 58集团2017校园招聘笔试题——压缩输出字符串中最多的3个字符
- 输出一个字符串中出现次数最多的字符
- 题目:剔除一个字符中重复的字符,然后按ASCII码值从小到大排列。 例如,输入:abbcccddeeeffgghh 输出:abcdefgh 注意:1、剔除是整个字符串中重复的字符,而不是连续的字符 2
- 查找一个字符串中出现次处最多的那个字符,并输出出现次数
- 1、 编写一个Java应用程序,对用户输入的任意一组字符如{1,3,4,7,2,1,1,5,2},输出其中出现次数最多且数值最大的字符,并显示其出现次数。
- 编写一个程序,对用户输入的任意一组数字字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的字符,并显示其出现次数。如果有多个字符出现次数均为最大且相等,则输出最先出现的那个字符和它出现
- 习题 8.16 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。
- java【通用】统计字符串中重复【单个】字符的次数频次并输出重复最多的次数和字符
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc
- C语言初级练习——编写一个乘法表,呈倒三角形、输入一串字符,要求输出这串字符中的数字最多的那段的位置以及这段数字的个数
- 求字符串中由连续的相同字符组成的最长子串(如果有两个及两个以上的最长子串,则输出第二个)
- 对输入字符串进行压缩,输入"aaabcccdde",输出"3ab3c2de",即对连续出现的字符进行压缩
- 求一段字符串中连续出现次数最多的单个字符和分解字符串
- 给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次
- PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
- 输出字符串中出现次数最多的字符
- 编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词。程序应该找出满足一下条件的单词:该单词的后面紧接着再次出现自己本身。跟踪重复次数最多的单词及其重复次数,输出.
- JAVA找出字符串中连续出现次数最多的字符
- PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法