You have a string of small letters a-e, which can be represented as a regular expression in the form of [a-e]*
Example: abcdef, eafdceeafe, etc etc
Problem: Write a program that counts maximum continuous occurrence of a character and their indexes. For example, if the string is "abbbbdcdef", it will be "b" : 4, starting at index 1 to 4.
Output:
Example: abcdef, eafdceeafe, etc etc
Problem: Write a program that counts maximum continuous occurrence of a character and their indexes. For example, if the string is "abbbbdcdef", it will be "b" : 4, starting at index 1 to 4.
public class TestStringCharCount {
public static void main(String[] args) {
int start = 0;
int count = 0;
int maxCount = 0;
char maxChar = 'a';
String str = "abcdefabbbbbbbbcdaeff";
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
count = 0;
for (int j = i; j < chars.length; j++) {
if (chars[i] == chars[j]) {
count++;
} else {
break;
}
i = j;
}
if (count > maxCount) {
maxCount = count;
maxChar = chars[i];
start = i;
}
}
System.out.println("string = "+ str + ", length = "+ str.length());
System.out.println(maxChar + ":" + maxCount + " starting at "
+ (start - maxCount) + " to " + start);
}
}
Output:
string = abcdefabbbbbbbbcdaeff, length = 21
b:8 starting at 6 to 14
No comments:
Post a Comment