题目描述:
实现一个算法,确定一个字符串 s
的所有字符是否全都不同。
示例 1:
输入: s
= "leetcode"
输出: false
示例 2:
输入:s
= "abc" 输出: true
读题感受:
思路1:
1 /* 2 3 首先读到这个题,确定一个字符串 s 的所有字符是否全都不同。也就是说,字符串中不存在相同的字母 4 5 解题思路一: 6 首先把字符串通过toCharArray()方法,转换成Char数组,通过提供双层循环进行遍历,与Char数组中其他元素进行比较 7 8 缺点:用了双层for循环,空间消耗很严重 9 10 */ 11 代码实现: 12 class Solution { 13 public boolean isUnique(String astr) { 14 char[] chars = astr.toCharArray(); 15 for (int i=0;i<chars.length;i++){ 16 for (int j=i+1;j<chars.length;j++){ 17 if (chars[i]==chars[j]){ 18 return false; 19 } 20 } 21 } 22 return true; 23 } 24 }
思路2:
1 /* 2 思路2与思路1相似,第一步也是把字符串通过toCharArray()方法转换成字符数组,然后只需要一层for循环就可以完成,
通过indexOf()方法和lastIndexOf()方法比较字符第一次出现和最后异常出现的位置的是否相同,进行判断。 3 */ 4 代码实现: 5 public static boolean isUnique(String astr) { 6 char[] chars = astr.toCharArray(); 7 for (int i=0;i<chars.length;i++){ 8 System.out.println(chars[i]); 9 if (astr.indexOf(chars[i])!=astr.lastIndexOf(chars[i])){ 10 //return false; 11 } 12 13 } 14 return true; 15 }