java洛谷p2550
时间: 2024-12-04 18:14:01 浏览: 24
洛谷P2550是一道关于Java编程的题目,通常用于考察Java基础知识和编程技巧。以下是该题目的详细介绍:
### 题目描述
给定一个字符串,输出该字符串中出现次数最多的字符及其出现的次数。如果有多个字符出现的次数相同且最多,输出字典序最小的字符。
### 输入格式
输入包含一行,一个字符串。字符串长度不超过1000。
### 输出格式
输出两行。第一行输出出现次数最多的字符,第二行输出该字符出现的次数。
### 样例输入
```
abacabad
```
### 样例输出
```
a
4
```
### 解题思路
1. 使用一个数组或哈希表来记录每个字符出现的次数。
2. 遍历字符串,统计每个字符的出现次数。
3. 找出出现次数最多的字符,并记录其出现次数。
4. 如果有多个字符出现次数相同且最多,输出字典序最小的字符。
### 代码示例
```java
import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
scanner.close();
Map<Character, Integer> charCount = new HashMap<>();
for (char c : input.toCharArray()) {
charCount.put(c, charCount.getOrDefault(c, 0) + 1);
}
char maxChar = input.charAt(0);
int maxCount = 0;
for (Map.Entry<Character, Integer> entry : charCount.entrySet()) {
if (entry.getValue() > maxCount || (entry.getValue() == maxCount && entry.getKey() < maxChar)) {
maxChar = entry.getKey();
maxCount = entry.getValue();
}
}
System.out.println(maxChar);
System.out.println(maxCount);
}
}
```
### 代码解释
1. 使用`Scanner`读取输入字符串。
2. 使用`HashMap`记录每个字符的出现次数。
3. 遍历字符串,更新字符出现次数。
4. 遍历`HashMap`,找出出现次数最多的字符。
5. 输出结果。
阅读全文