题目
给你一个只包含小写字母的字符串。
请你判断是否存在只在字符串中出现过一次的字符。
如果存在,则输出满足条件的字符中位置最靠前的那个。
如果没有,输出”no”。
输入格式:
共一行,包含一个由小写字母构成的字符串。
数据保证字符串的长度不超过100000。
输出格式:
输出满足条件的第一个字符。
如果没有,则输出”no”。
输入样例:
abceabcd
输出样例:
e
代码
java
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine(); //字符串接收输入
char[] ch = str.toCharArray(); //转为单个字符的数组
int i,j;
for(i=0;i<ch.length;i++){ //遍历数组查重
for(j=0;j<ch.length;j++){ //目标i字符的前后都要查
if(j==i) //跳过字符本身
continue;
if(ch[i]==ch[j]){ //遇到重复则跳过到下一个i字符,注意因为是char类型字符比较,不能用String.equals()函数
break;
}
}
if(j>=ch.length){ //若j自加到达数组边界,说明没有与目标i字符相同的字符,直接输出并结束循环
System.out.println(ch[i]);
break;
}
}
if(i==ch.length){ //若目标i自加到达数组边界,说明数组中没有不重复的字符,输出no
System.out.println("no");
}
}
}
c++解题代码后面有机会补上