针对Java日常练习题第27题,以下是完整攻略:
题目描述
给定一个只包含字母的字符串,找到每个字母的出现次数并返回。 不允许使用任何内置计数器函数,并且输入字符串中只包含小写字母。
示例:
输入: "leetcode"
输出: {'l': 1, 'e': 3, 't': 1, 'c': 1, 'o': 1, 'd': 1}
解题思路
这个题目的思路其实和第26题类似,依然需要利用HashMap来记录每个字母出现的次数。下面是具体步骤:
- 定义一个HashMap,用于存放每个字母出现的次数;
- 使用for循环遍历字符串中的每个字符;
- 对于每个字符,如果在HashMap中已经存在,那么将其对应的value值加1;否则,在HashMap中新增一个键值对(key为字符,value为1);
- 遍历完字符串后,HashMap中存储的每个键值对就是每个字母出现的次数。
代码实现
下面是Java实现的代码,可以直接复制粘贴到代码编辑器中进行测试:
import java.util.HashMap;
public class Solution {
public HashMap<Character, Integer> countChars(String s) {
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
return map;
}
}
示例测试
下面是两个示例,可以根据自己的需要进行测试:
public class Test {
public static void main(String[] args) {
Solution solution = new Solution();
String s1 = "leetcode";
System.out.println(solution.countChars(s1)); // {'l': 1, 'e': 3, 't': 1, 'c': 1, 'o': 1, 'd': 1}
String s2 = "aabbbccdddeee";
System.out.println(solution.countChars(s2)); // {'a': 2, 'b': 3, 'c': 2, 'd': 3, 'e': 3}
}
}
以上就是针对Java日常练习题第27题的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java日常练习题,每天进步一点点(27) - Python技术站