• 程序员面试金典 01.01. 判定字符是否唯一


    实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
    https://leetcode.cn/problems/is-unique-lcci/

    示例 1:

    输入: s = "leetcode"
    输出: false
    示例 2:

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

    0 <= len(s) <= 100
    s[i]仅包含小写字母
    如果你不使用额外的数据结构,会很加分。

    先把输入字符串 拆分成 字符数组
    假设字符串长度为n

    解法1 :
    从第一个字符开始在数组中遍历查询
    第一个找完了, 就从第二个开始
    直到第n-2个
    这个遍历过程中, 如果找到重复的字符就认为不唯一
    没有找到, 就认为是唯一的
    时间复杂度 : O(n^2), 空间复杂度 O(n)

    解法2:
    建立一个map/长度为26的数组
    把输入字符映射到上述数据结构中
    如果同一个key/数组index下, 数据的统计数大于1, 则认为不唯一
    否则就是唯一的

    class Solution { public boolean isUnique(String astr) { if(astr==null||astr.length()==0){ return true; } char[] chars = astr.toCharArray(); int[] position = new int[26]; for(char a : chars){ int index = (int)(a-'a'); if(position[index]==0){ position[index] = 1; }else{ return false; } } return true; } }

  • 相关阅读:
    小孩抓周
    psychology
    绝恋诗词
    一万小时定律
    王国维的人生三重境界
    2017年日历
    018 cisco 3560 MAC地址绑定
    017 SSH
    016 ppp authentication
    unity Tilemap
  • 原文地址:https://www.cnblogs.com/appinn/p/16399104.html
Copyright © 2020-2023  润新知