一、题目描述:
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = “leetcode” 输出: false
示例 2:
输入: s = “abc” 输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
二、 解题思路及代码
1.解题思路
2.解题代码
import java.util.Scanner;
import java.util.HashMap;
public class uniqueS {
public static boolean isUnique(String astr) {
//建立一个哈希表
HashMap<Integer, Character> map = new HashMap<>();
//获取字符串的长度
int len = astr.length();
int j=0;
//在哈希表中建立映射, 每读出一个字符就往哈希表里加一个,如果重复就报错,不重复就继续加
for (int i = 0; i < len; i++) {
//出现重复
if (map.containsValue(astr.charAt(i))) {
return false;
}
else{//不重复则加入哈希表
map.put(j, astr.charAt(i));
j = j+1;
}
}
return true;//都遍历过了,没出现重复
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();//从键盘获得一个字符串
in.close();
boolean res = isUnique(str);
if(res == true){
System.out.println("true");
}
else{
System.out.println("false");
}
}
}
三、语法知识积累
1. JAVA哈希表相关语法
使用哈希表需要导入包
import java.util.HashMap;
建立一个哈希表
<下标, 哈希表中存储的内容>
//建立一个哈希表
HashMap<Integer, Character> map = new HashMap<>();
在哈希表中查找
if (map.containsValue(astr.charAt(i))) {
return false;
}
向哈希表中添加元素
map.put(j, astr.charAt(i));
2. JAVA中如何提取单个字符串元素
charAt(下标)
该函数将返回当前索引指向的字符串中的单个字符值。
astr.charAt(i)
3.JAVA中的字符型不是char, 而是Character
HashMap<Integer, Character> map = new HashMap<>();