LeetCode Note Java 00242:Valid Anagram
判斷輸入的兩個 String 彼此是否為 Anagram (由相同字母池組成的單字)。
題目
Valid Anagram Easy
Given two strings s and t, return true if t 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.
我的解法
1 | class Solution { |
步驟:
將 String 轉成 char array。
透過
Arrays.sort()
重新排列 chars。將 char array 轉回 String。
比較排序後的 String 值是否相同。
注意:
Arrays.sort()
是操作原數據,並非返回新 Array。比較 String 時應使用
String.equals()
才是比較 String 值是否相同,若使用==
是比較儲存位置。
重點物件或方法:
Arrays.sort()
String.toCharArray()
String.equals()
補充:此方法在 00438:Find All Anagrams in a String 中會超時。
檢討
這種題目解法就滿多樣的,看到只使用一個 Array 就解決計數兩個 String,真的是滿厲害的,不過看過之後方法就見光死了,類似題目以後都能用此方式處理了。
1 | class Solution { |
知道越多 String Class 的 method 解題時可以更靈活,如 String.charAt()
。
需要知道 char 也能當作 int 使用,詳見:ASCII。
重點物件或方法:
String.charAt()
參考資料
Accepted Java O(n) solution in 5 lines
Java String 类