题目:实现一个算法,确定一个字符串的所有字符是否全都不同。假使不允许使用额外的数据结构,又该如何处理?
如果字符集为ASCII 可以利用ASCII进行筛选
import java.sql.Array;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str = input.nextLine();
boolean res = chack(str);
System.out.println(res);
}
public static boolean chack(String str){
if(str.length()>128){
return false;
}
int[] mapASCII = new int[128];//ASCII映射
char[] cArr = str.toCharArray();
for(char c: cArr){
int num = (int)c;
if(mapASCII[num]>0){
return false;
}
mapASCII[num] = 1;
}
return true;
}
}
但更题目意思不能使用额外的数据结构 数据结构分为8类有:数组、栈、队列、链表、树、散列表、堆、图。
直接使用暴力解法原数组中进行查找
import java.sql.Array;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String str = input.nextLine();
boolean res = chack(str);
System.out.println(res);
}
public static boolean chack(String str){
for(int i =0;i<str.length();i++){
for(int j = i+1;j<str.length();j++){
if(str.charAt(i) == str.charAt(j)){
return false;
}
}
}
return true;
}
}