zoukankan      html  css  js  c++  java
  • LeetCode(242):有效的字母异位词

    题目描述

    解题思路

    这道题目的本质 可以理解为 判断2个字符串中 各字符出现的次数是否一致

    方法一:数组

    我们可以通过js提供的几个方法,将原字符串整理成 排好序的字符串
    例如:"array"整理成"aarry"
    在这种情况下,只需比较2个字符串是否完全相同即可

    1、split方法
    用于将字符串分隔成字符串数组
    2、sort方法
    用于对字符串数组排序
    3、join方法
    用于将数组中的所有元素拼接成字符串

    方法二:哈希表

    利用js提供的Map对象,存储第一个字符串中 各个字母出现的次数
    然后再遍历第二个字符串
    若当前字符在Map中不存在,则直接返回false
    否则,则对当前字符对应的value值减一
    遍历结束后,判断Map对象是否为空
    若为空,则说明2个字符串中的字母及其出现次数是匹配的

    简单说明 Map 提供的几个常用方法
    .get(key)-返回key对应的value,若不存在,则返回undefined
    .set(key,value) -修改key对应的value
    .delete(key) -删除指定的key
    .size -哈希表的大小(key的个数)

    代码

    // 方法一
    var isAnagram = function(s, t) {
        if(s.length!==t.length){
            return false
        }
        
        var newS=s.split("").sort().join()
        var newT=t.split("").sort().join()
    
        return newS===newT
    };
    
    // 方法二
    var isAnagram = function(s, t) {
        if(s.length!==t.length){
            return false
        }
        
        const map=new Map()
        for(let i=0;i<s.length;i++){
            let count=map.get(s.charAt(i))
            if(count===undefined){
                map.set(s.charAt(i),1)
            }else{
                map.set(s.charAt(i),count+1)
            }
        }
    
        for(let i=0;i<t.length;i++){
            let count=map.get(t.charAt(i))
            if(count===1){
                map.delete(t.charAt(i))
            }else if(count===undefined){
                return false
            }else{
                map.set(t.charAt(i),count-1)
            }
        }
    
        if(map.size===0){
            return true
        }else{
            return false
        }
    };
    
  • 相关阅读:
    HTML5结构
    HTML5新增的非主体元素header元素、footer元素、hgroup元素、adress元素
    CF GYM 100703G Game of numbers
    CF GYM 100703I Endeavor for perfection
    CF GYM 100703K Word order
    CF GYM 100703L Many questions
    CF GYM 100703M It's complicate
    HDU 5313 Bipartite Graph
    CF 560e Gerald and Giant Chess
    POJ 2479 Maximum sum
  • 原文地址:https://www.cnblogs.com/baebae996/p/13883569.html
Copyright © 2011-2022 走看看