Java给定一个只包含大写字母的字符串S,请你输出其中出现次数最多的字母,如果有多个字母均出现了最多次,按字母表顺序依次输出所有这些字母
时间: 2024-06-14 19:03:35 浏览: 225
以下是Java输出字符串中出现次数最多的字母的代码:
```java
String s = "ABCAABBCCC";
int[] count = new int[26];
int max = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
count[c - 'A']++;
max = Math.max(max, count[c - 'A']);
}
for (int i = 0; i < 26; i++) {
if (count[i] == max) {
System.out.println("字母" + (char)(i + 'A') + "出现" + max + "次");
}
}
```
代码解释:
1. 首先定义一个长度为26的数组count,用于记录每个字母出现的次数。
2. 遍历字符串s,对于每个字符c,将其对应的count数组位置加1。
3. 同时记录出现次数的最大值max。
4. 再次遍历count数组,输出出现次数等于max的字母及其出现次数。
相关问题
使用Java完成:给定一个只包含大写字母的字符串S,请你输出其中出现次数最多的字母。如果有多个字母均出现了最多次,按字母表顺序依次输出所有这些字母。输入一个只包含大写字母的字符串S。输出若干个大写字母,代表答案,样例输...
可以使用一个HashMap来记录每个字母出现的次数,然后遍历HashMap找到出现次数最多的字母。如果有多个字母出现次数相同,则可以将它们放到一个列表中,最后按字母表顺序输出这个列表。
下面是Java代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
Map<Character, Integer> map = new HashMap<>();
int maxCount = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int count = map.getOrDefault(c, 0) + 1;
map.put(c, count);
maxCount = Math.max(maxCount, count);
}
List<Character> list = new ArrayList<>();
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
if (entry.getValue() == maxCount) {
list.add(entry.getKey());
}
}
Collections.sort(list);
for (char c : list) {
System.out.print(c);
}
}
}
```
输入样例:
```
ABCAABBCCC
```
输出样例:
```
C
```
用java:给定一个只包含大写字母的字符串 S, 请你输出其中出现次数最多的字符。 如果有多个字母均出现了最多次, 按字母表顺序依次输出所有这些字母。 输入格式 一个只包含大写字母的字等串 S. 输出格式 若干个大写字母,代表答案。 样例输入 BABBACAC 样例输出 AB
要解决这个问题,我们可以使用Java编写一个程序来统计字符串中每个字符出现的次数,并找出出现次数最多的字符。如果有多个字符出现次数相同且为最多,则按字母表顺序输出这些字符。
以下是实现这个功能的Java代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String S = scanner.nextLine();
scanner.close();
Map<Character, Integer> frequencyMap = new HashMap<>();
// 统计每个字符出现的次数
for (char c : S.toCharArray()) {
frequencyMap.put(c, frequencyMap.getOrDefault(c, 0) + 1);
}
// 找出出现次数最多的次数
int maxFrequency = Collections.max(frequencyMap.values());
// 找出所有出现次数等于最大次数的字符,并按字母表顺序排序
List<Character> result = new ArrayList<>();
for (Map.Entry<Character, Integer> entry : frequencyMap.entrySet()) {
if (entry.getValue() == maxFrequency) {
result.add(entry.getKey());
}
}
Collections.sort(result);
// 输出结果
for (char c : result) {
System.out.print(c);
}
}
}
```
### 代码解释:
1. **输入处理**:
- 使用`Scanner`读取输入的字符串。
2. **统计字符频率**:
- 使用`HashMap`来统计每个字符出现的次数。
3. **找出最大频率**:
- 使用`Collections.max`找出字符出现的最大次数。
4. **找出所有出现次数等于最大次数的字符**:
- 遍历`HashMap`,将所有出现次数等于最大次数的字符添加到`List`中。
5. **排序**:
- 对结果列表进行排序,以确保按字母表顺序输出。
6. **输出结果**:
- 遍历结果列表,逐个输出字符。
### 样例输入与输出:
- **输入**:
```
BABBACAC
```
- **输出**:
```
AB
```
阅读全文
相关推荐















