我正试图在练习面试问题上取得领先,我遇到了这个问题:
将字符串 aaaabbbbddd 转换为 a4b4d3
您基本上希望将现有字符串转换为包含每个唯一字符出现次数以及该字符出现次数的字符串。
这是我的解决方案,但我认为它可以改进为更优雅的东西:
String s = "aaaabbbbddd";
String modified = "";
int len = s.length();
char[] c = s.toCharArray();
int count = 0;
for (int i = 0; i < len; i++) {
count = 1;
for (int j = i + 1; j < len; j++) {
if (c[i] == ' ') {
break;
}
if (c[i] == c[j]) {
count++;
c[j] = ' ';
}
}
if (c[i] != ' ') {
modified += c[i] + "" + count;
}
}
System.out.println(modified);
有人对解决方案有其他建议吗?
雇用一个Map<Character, Integer>
反而。尝试将新角色插入地图;如果它已经存在,则增加该特定字符的值。
Example:
Map<Character, Integer> countMap = new HashMap<>();
if(!countMap.containsKey('a')) {
countMap.put('a', 1);
} else {
countMap.put('a', countMap.get('a') + 1);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)