刷题力扣面试题 01.01. 判定字符是否唯一

题目链接

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/is-unique-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目描述

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode"
输出: false 

示例 2:

输入: s = "abc"
输出: true

限制:

  • 0 <= len(s) <= 100
  • 如果你不使用额外的数据结构,会很加分。

题目分析

  1. 根据题目描述,没有提到字符串中可能出现的字符范围,已经包含字符的编码方式
  2. 对字符串进行排序,排序后相同的字符相邻
  3. 进行一次遍历,判断相邻的字符是否相同

代码

class Solution {
private:
    bool static compare(char a, char b) {
        return a > b;
    }
public:
    bool isUnique(string astr) {
        if (astr == "") {
            return true;
        }
        std::sort(astr.begin(), astr.end(), compare);
        for (int i = 1; i < astr.length(); ++i) {
            if (astr[i] == astr[i - 1]) {
                return false;
            }
        }
        return true;
    }
};
原文地址:https://www.cnblogs.com/HanYG/p/15792642.html