列表

详情


NC229. 判断字符是否唯一

描述

给定一个字符串,请你判断其中每个字符是否全都不同。

数据范围:字符串长度满足

示例1

输入:

"nowcoder"

输出:

false

说明:

 "nowcoder" 中 'o' 出现了两次,因此返回 false

示例2

输入:

"nowcOder"

输出:

true

说明:

每个字符都只出现了一次

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 2ms, 内存消耗: 324KB, 提交时间: 2022-03-13

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    bool isUnique(string str) {
        // write code here
        unordered_map<char, int> rec;
        
        for(int i=0; i<str.length(); i++){
            if(rec.find(str[i]) != rec.end()){
                return false;
            }
            rec[str[i]] += 1;
        }
        return true;
    }
};

C++ 解法, 执行用时: 2ms, 内存消耗: 392KB, 提交时间: 2021-11-29

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    bool isUnique(string str) {
        // write code here
                set<char> m;
        for(int i=0;i<str.length();i++)
            m.insert(str[i]);
            if(m.size()==str.length())
                return 1;
                else return 0;
    }
};

C++ 解法, 执行用时: 2ms, 内存消耗: 424KB, 提交时间: 2021-12-02

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    bool isUnique(string str) {
        // write code here
        vector<vector<int>> dp (str.length(),vector<int>(str.length(),0));
        for(int i = 0 ; i< str.length();i++){
            for(int j = i; j < str.length();j++){
                if( i == j) dp[i][j] = 1;
                else if(str[i] != str[j]) dp[i][j] = dp[i][j-1];
                else if(str[i] == str[j]) dp[i][j] = dp[i][j-1]+1;
            }
            if(dp[i][str.length()-1] > 1) return false;
        }
        return true;
    }
};

C++ 解法, 执行用时: 2ms, 内存消耗: 432KB, 提交时间: 2022-02-08

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    bool isUnique(string str) {
        // write code here
        char a[101];
        a[0] = str[0];
        for(int i=1;i<str.length();i++)
            for(int j=0;j<i;j++)
                if(a[j]==str[i])
                    return false;
                else
                    a[i]=str[i];
        return true;
    }
};

Rust 解法, 执行用时: 3ms, 内存消耗: 288KB, 提交时间: 2022-02-05

struct Solution{

}

impl Solution {
    fn new() -> Self {
        Solution{}
    }

   pub fn isUnique(&self, str: String) -> bool {
        let mut array = vec![0; 255];
        for byte in str.bytes() {
            array[byte as usize] += 1;
            if array[byte as usize] > 1 {
                return false;
            }
        }
        return true;
    }
}

上一题