实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = “leetcode”
输出: false
示例 2:
输入: s = “abc”
输出: true
public class Stringjudge {
public static void main(String[] args) {
//定义系统获取输入对象Scanner
Scanner inScanner = new Scanner(System.in);
//获取用户输入,且是字符串类型的
String a = inScanner.next();
//输入并调用函数
System.out.println(isUnique(a));
}
public static boolean isUnique(String astr) {
//第一步先定义字符b来等于astr,接下来比较两个字符串
String b = astr;
//第二步,定义第一层循环,也就是用户输入的字符串,从第一个字符开始比较
for (int i = 0; i < astr.length(); i++) {
//第三步,定义第二层循环,从astr里面循环拿一个字符与b里面的全部字符比较,
//注意这里非常重要的一点就是要加&& i != j,以防止同样的字符自己和自己比较,
//也是为了分开单个比较。
for (int j = 0; j < b.length() && i != j; j++) {
if (astr.charAt(i) == b.charAt(j)) {
//第四步,如果有相同的字符直接返回true
return true;
}
}
}
return false;
}
}
方法二:利用set集合的不可重复性
class Solution {
public static void main(String[] args) {
Scanner inScanner = new Scanner(System.in);
String a = inScanner.next();
System.out.println(isUnique(a));
}
public static boolean isUnique(String astr) {
char[] c1 = astr.toCharArray();
// 第二步再新建一个set集合,集合里面放char类型的数据,放String就不行。
Set<Character> set = new HashSet<>();
for (int i = 0; i < c1.length; i++) {
set.add(c1[i]);
}
if(set.size()==c1.length){
return true;
}
return false;
}
}