给你一个由小写英文字母组成的字符串 s ,请你找出并返回第一个出现两次的字母。 注意:如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前,则认为字母 a 在字母 b 之前出现两次。s 包含至少一个出现两次的字母。
2 <= s.length <= 100
s 由小写英文字母组成
s 包含至少一个重复字母
对于本题,我们可以分别定义一个整型数组a和一个字符数组c 整数数组用来接收每个字符出现的次数 字符数组用来接收所输入的字符串中的小写英文字母 通过出现两次
这一条件 当整型数组a接收的某个字符次数为2时即为第一个出现两次的字母 最后输出对应的字符数组c中的元素 即为答案
public static void main(String[] args){
String s = new String();//定义一个字符串数组
Scanner scan = new Scanner(System.in);
s = scan.next();//接收输入的字符串
int b;
b = s.length();//定义一个整形变量b等于输入的字符串的长度
char []c = new char[b];//定义一个字符数组c 使其长度为字符串的长度
int []a = new int [26];//定义一个整型数组a 长度为26 正好用于接收26个字母所出现的次数
for(int i = 0;i < b;i++){
c[i] = s.charAt(i);//把字符串中的每个字符接收到c数组中
}
for(int i = 0;i < b;i++){
a[c[i] - 'a']++;//遍历c数组中的每个元素 并把每个字母的出现次数接收进a数组中
if (a[c[i] - 'a'] == 2){//当某个字母在a数组出现次数为2时,输出这个字母
System.out.println(c[i]);
break;//当出现第一个出现两次字母时,就退出循环
}
}
}