zoukankan      html  css  js  c++  java
  • 程序员面试金典 <Cracking the Coding Interview> 面试题 01.01. 判定字符是否唯一 哈希

    地址  https://leetcode-cn.com/problems/is-unique-lcci/

    实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
    
    示例 1:
    输入: s = "leetcode"
    输出: false 
    
    示例 2:
    输入: s = "abc"
    输出: true
    
    限制:
    0 <= len(s) <= 100
    如果你不使用额外的数据结构,会很加分。

    算法1
    (哈希) O(1) 
    遍历字符串,使用哈希记录每个字符出现的次数
    如果没有出现1次以上的记录 那么每个字符都是仅出现一次的

    class Solution {
    public:
        set<char> ss;
        bool isUnique(string astr) {
            for(int i = 0; i < astr.size();i++){
                if(ss.count(astr[i])!=0) return false;
                ss.insert(astr[i]);
            }
    
            return true;
        }
    };

    算法2
    (哈希) O(1)O(1)
    优化下速度 使用数组进行字符哈希
    会比使用哈希数据结构 速度更快

    class Solution {
    public:
        int mm[300];
        bool isUnique(string astr) {
            for(int i = 0; i < astr.size();i++){
                if(mm[astr[i] -0] != 0) return false;
                mm[astr[i]-0]++;
            }
    
            return true;
        }
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    将来要干啥
    选新技术考虑点
    hdfs 创建一个新用户
    linux下实现mysql数据库定时备份
    PostgreSQL的安装和卸载,远程连接
    PostgreSQL语法
    【NiFi系列】1-基本介绍
    大数据相关资源网址
    MySQL主从复制配置
    MySQL设置免密登录
  • 原文地址:https://www.cnblogs.com/itdef/p/14459077.html
Copyright © 2011-2022 走看看