剑指Offer–01.判定字符是否唯一
- 题目连接:https://leetcode-cn.com/problems/is-unique-lcci/
- 题目难度: 简单
1. 问题描述
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode" 输出: false 示例 2: 输入: s = "abc" 输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
2. 问题分析
利用String的两个方法:
int indexOf(String str)
返回指定子字符串第一次出现的字符串内的索引int lastIndexOf(int ch)
返回指定字符的最后一次出现的字符串中的索引。
3. 代码实现
class Solution {
public boolean isUnique(String astr) {
boolean flag = true;
// 如果字符串长度小于等于1,则不会出现重复的字符,所以返回为true
if (astr.length() <= 1) {
return flag;
}
for (int i = 0; i < astr.length(); i++) {
//int indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引
// int lastIndexOf(int ch) 返回指定字符的最后一次出现的字符串中的索引。
// 如果该字符第一次的索引与最后一次出现的字符索引不同,则说明出现重复的字符,返回为false
if (astr.indexOf(astr.charAt(i)) != astr.lastIndexOf(astr.charAt(i))) {
return false;
}
}
return flag;
}
}
4. 结果分析
执行结果:
- 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
- 内存消耗:37.3 MB, 在所有 Java 提交中击败了69.28%的用户