第一个程序
public class Main{
public char getString(String s){
int num=0;
for(int i=0;i<s.length();i++){
for(int j=0;j<s.length();j++){
if(s.charAt(i)==s.charAt(j)){
num++;
}
}
if(num==1){
return s.charAt(i);
}else{
num=0;
}
}
return 0;
}
public static void main(String[] args) throws IOException{
Main main=new Main();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=null;
while((s=br.readLine())!=null){
System.out.println(main.getString(s));
}
}
}
第二个程序
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int array=in.nextInt();//得到数据组数
for(int i=0;i<array;i++){//取出每一个字符串判断
String str=in.next();
char[] ch=str.toCharArray();
System.out.println(getFirstChar(ch));
}
}
//统计字符数组中只出现一次字符的数组
public static char getFirstChar(char[] ch){
char goal;
for(int i=0;i<ch.length;i++){
int k=0;
goal=ch[i];
for(int j=0;j<ch.length;j++){
if(goal==ch[j]){
k++;
}
if(k>1){
break;
}
}
if(k==1){
return goal;
}
}
return '0';
}
}
这两个算法在MyEclipse中都可以执行,但是第一个在牛客网上却执行不了,说时间复杂度太大,我想问一下这两个都是两个for循环加判断,咋么第一个复杂度大于第二个呢,各位帮帮忙!