LeetCode #242 Valid Anagram 正確的易位構詞遊戲

LeetCode題目翻譯

英文原文如下

Given two strings s and t, return true if is an anagram of s, and false otherwise.

An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

中文翻譯

給予兩個字串  s 跟 t

一個易位構詞遊戲的定義是一個單字或是片語可以透過重新排列成為另一個單字或是片語的,通常來說原來每次出現的字母只能被使用一次。

範例及題目限制

LeetCode#242 範例及題目限制

進一步 : 要是輸入包含 Unicode 符號的話? 要做些什麼改動來讓程式可以運行呢?


解題思路

外國人比較喜歡玩這種遊戲,畢竟中文字的組成是以字為基礎,不是一個一個字母

所以比較難體會到底有什麼好玩的 (才不是我單字量太差呢…

而我們的解決方法就是把s 跟 t 的字母按順序排序,再來進行比較就好

C# 解決方案

方案1

public class Solution {
    public bool IsAnagram(string s, string t) {
        s = String.Concat(s.OrderBy(c => c));
        t = String.Concat(t.OrderBy(c => c));

        return s==t;
    }
}

Java解決方案

方案1

class Solution {
    public boolean isAnagram(String s, String t) {
        char charArr[] = s.toCharArray();
        char charArr2[] = t.toCharArray();
        
        Arrays.sort(charArr);
        Arrays.sort(charArr2);

        return Arrays.equals(charArr,charArr2);
    }
}

運行時間 : 3ms、3ms、3ms 超過91%的Java結果

Python3解決方案

方案1

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        list1 = sorted(s)
        list2 = sorted(t)

        return list1 == list2

JavaScript解決方案

方案1

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isAnagram = function(s, t) {
    list1 = s.split("").sort();
    list2 = t.split("").sort();

    console.log(list1);
    console.log(list2);
    return JSON.stringify(list1) === JSON.stringify(list2);
};

結論

🧡如果這篇文章有幫上你的一點點忙,那是我的榮幸

🧡幫我分享或是收藏,我都會很感激的

✅如有任何疑問,歡迎透過留言或messenger讓我知道 !

題目連結 : Valid Anagram – LeetCode

相關文章

隨機文章

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *