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; } }