华为OJ平台——首次不重复字符
题目描述:
输入一个字符串,输出字符串中第一个没有重复的字符,若没有满足条件的字符存在,则输出“.”
思路:
这题很简单,直接逐次比较就好了,但是没有考虑到更好效率的方法,以后想到的话再加上来
1 import java.util.Scanner; 2 3 /** 4 * 输入一个字符串,输出字符串中第一个没有重复的字符 5 * 若没有满足条件的字符存在,则输出“.” 6 * 7 */ 8 public class FirstAppearance { 9 10 public static void main(String[] args) { 11 //输入,读取输入字符串 12 Scanner cin = new Scanner(System.in) ; 13 String str = cin.nextLine() ; 14 cin.close(); 15 16 int len = str.length(); 17 18 char temp ; 19 boolean flag ; 20 //双重查找比较即可判断是都有重复 21 for(int i = 0 ; i < len ; i++){ 22 temp = str.charAt(i) ; 23 //flag标志位,表示是否是不重复的,true--不重复,直接输出,false---重复下一个 24 flag = true ; 25 for(int j = 0 ; j < len ; j++){ 26 //如果重复,flag置false,跳出当前循环,进行字符串的下一个字符的判断 27 if(temp == str.charAt(j) && i != j){ 28 flag = false ; 29 break ; 30 } 31 } 32 if(flag){ 33 System.out.println(temp) ; 34 return ; 35 } 36 } 37 //若所有的比较结果都没有不重复的字符,则输出"." 38 System.out.println(".") ; 39 } 40 41 }