题目描述:
给你一个只包含小写字母的字符串。
请判断是否存在只在字符串中出现过一次的字符。
如果存在,则输出满需条件的字符中位置的最靠前 的那个。
如果没有输出 no。
输入格式:
共一行,包含一个由小写字母构成的字符串。
数据保证字符串的长度不超过1000000.
输出格式:
输出满足条件的第一个字符,如果没有,则输出 no.
样例输入:
abceabcd
样例输出:
e
解题思路:
因为我们很清楚,字符串中的元素都是小写,并且我们可以通过字符来进行加减运算(即就是用到了,ASCII码值来进行运算)
从而就能实现每出现一个就 记录一次
代码实现:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int n = s.length();
int[] arr = new int[n];
int flag = 0;
for(int i = 0; i < s.length(); i++){
arr[s.charAt(i) - 'a']++;
}
for(int i = 0; i < s.length(); i++){
if(arr[s.charAt(i) - 'a'] == 1){
flag = 1;
System.out.println(s.charAt(i));
break;
}
}
if(flag == 0){
System.out.println("no");
}
}
}