zoukankan      html  css  js  c++  java
  • Leetcode 242 有效的字母异位词

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

    示例 1:

    输入: s = "anagram", t = "nagaram"
    输出: true
    示例 2:

    输入: s = "rat", t = "car"
    输出: false
    说明:
    你可以假设字符串只包含小写字母。

    进阶:
    如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

    1. 直接把字符串转换为数组,排序后拼接成字符串判断是否相等

    /**
     * @param {string} s
     * @param {string} t
     * @return {boolean}
     */
    var isAnagram = function(s, t) {
      // 必须要 join 以后才可能比较,因为数组是引用, === 一定返回 false
      return s.split('').sort().join('') === t.split('').sort().join('');
    };
    

    2. 使用哈希表

    var isAnagram = function(s, t) {
      if(s === t) {
         return true;
      }
      if(s.length !== t.length) {
        return false;
      }
      let obj = {};
      for(let i = 0; i < s.length; i++ ) {
        if(!obj[s[i]]) {
          obj[s[i]] = 0;
        }
        obj[s[i]] += 1;
        if(!obj[t[i]]) {
          obj[t[i]] = 0;
        }
        obj[t[i]] -= 1;
      }
      for(let x in obj) {
        if(obj[x] !== 0) {
          return false;
        }
      }
      return true;
    }
    
  • 相关阅读:
    Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro权限
    mybatis3批量更新 批量插入
    Java GC的工作原理详解
    Hadoop的Map侧join
    cut 命令
    head 与 tail
    常用正则
    vim 设置
    Java泛型初探
    linux修改PS1,自定义命令提示符样式
  • 原文地址:https://www.cnblogs.com/ssaylo/p/13428396.html
Copyright © 2011-2022 走看看