iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
自我挑戰組

用LeetCode來訓練大腦的邏輯思維系列 第 21

LeetCode 242. Valid Anagram

  • 分享至 

  • xImage
  •  

題目

Given two strings s and t , write a function to determine if t is an anagram of s.

題意

判斷s是否為t的重組字。

Example 1:

Input: s = "anagram", t = "nagaram"
Output: true

Example 2:

Input: s = "rat", t = "car"
Output: false

解題想法

若為重組字,代表它們的內容一定相等,只是字元位置不同,
宣告一個長度26元素都為0的陣列,使用charCode取得字元的 AtUnicode 編碼,
s的 AtUnicode 編碼負責在陣列對應的位置上+1t負責-1
若內容相等,最終會抵消全為0。

Solution

var isAnagram = function (s, t) {
  if (s.length !== t.length) { return false; }
  const charSet = new Array(26).fill(0);
  for (let i = 0; i < s.length; i++) {
    charSet[s.charCodeAt(i) - 97]++;
    charSet[t.charCodeAt(i) - 97]--;
  }
  for (let i = 0; i < charSet.length; i++) {
    if (charSet[i] !== 0) { return false; }
  }
  return true;
};

上一篇
LeetCode 231. Power of Two
下一篇
LeetCode 283. Move Zeroes
系列文
用LeetCode來訓練大腦的邏輯思維30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言