算法题:删除字符串中出现次数最少的字符,用java实现
时间: 2024-04-13 20:28:52 浏览: 15
下面是用Java实现删除字符串中出现次数最少的字符的算法:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static String deleteLeastFrequentChar(String str) {
// 使用哈希表统计每个字符的出现次数
Map<Character, Integer> charCount = new HashMap<>();
for (char c : str.toCharArray()) {
charCount.put(c, charCount.getOrDefault(c, 0) + 1);
}
// 找到出现次数最少的字符
int minCount = str.length();
char minChar = '\0';
for (Map.Entry<Character, Integer> entry : charCount.entrySet()) {
if (entry.getValue() < minCount) {
minCount = entry.getValue();
minChar = entry.getKey();
}
}
// 构造删除最小字符后的结果字符串
StringBuilder result = new StringBuilder();
for (char c : str.toCharArray()) {
if (c != minChar) {
result.append(c);
}
}
return result.toString();
}
public static void main(String[] args) {
String input = "abracadabra";
String output = deleteLeastFrequentChar(input);
System.out.println(output); // 输出:brcdbr
}
}
```
在这个实现中,我们使用了HashMap来存储每个字符的出现次数。然后,我们遍历Map找到出现次数最少的字符,并构造删除最小字符后的结果字符串。最后,在示例中我们对字符串"abracadabra"进行了测试,并输出了删除结果。