华为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 }
原文地址:https://www.cnblogs.com/mukekeheart/p/5594269.html