某套连招动作记作仅由小写字母组成的序列arr = "abbccdeff",其中 arr[i] 第 i 个招式的名字。请返 回第一个只出现一次的招式名称,如不存在请返回空格。用java
时间: 2024-09-16 21:02:21 浏览: 25
这是一个经典的编程问题,可以使用哈希表(HashMap)或集合(Set)来解决。以下是使用Java语言的一个解决方案:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static String firstUniqChar(String s) {
// 创建一个HashMap来存储每个字符及其计数
Map<Character, Integer> map = new HashMap<>();
for (char c : s.toCharArray()) {
// 如果字符已经在map中,则加一;否则,添加并设置计数为1
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
// 遍历map,找到第一个出现次数为1的字符
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
return Character.toString(entry.getKey());
}
}
// 如果没有找到唯一出现一次的字符,返回空字符串
return "";
}
public static void main(String[] args) {
String arr = "abbccdeff";
System.out.println(firstUniqChar(arr));
}
}
```
在这个程序中,我们首先遍历输入序列`arr`,然后统计每个字符出现的次数。接着再遍历这个统计结果,一旦发现某个字符的计数为1,就立即返回它,因为它是第一次出现。如果没有找到这样的字符,说明所有的字符都出现了不止一次,所以返回空字符串。
阅读全文