
這題要比出兩個陣列是否相等,即使陣列裡面的字元排序不一樣也算相等
LeetCode 題目連結
https://leetcode.com/problems/valid-anagram/
題目
Given two strings s and t , write a function to determine if t is an anagram of s.
Example 1:
Input: s = "anagram", t = "nagaram" Output: true
Example 2:
Input: s = "rat", t = "car" Output: false
Accept 作法
我用了一個不是很簡短的方法,後來想想這樣對我最直覺。Runtime: 21 ms
Memory: 40.7 MB
Java 程式碼
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length() != t.length()){
return false;
}
if(s.length() == 0 && t.length() == 0){
return true;
}
HashMap setS = getStringMap(s);
HashMap setT = getStringMap(t);
boolean isAnagram = false;
for(String keyS : setS.keySet()) {
if(setT.containsKey(keyS)){
Integer valueT = setT.get(keyS);
if(((int)valueT) == ((int)setS.get(keyS))){
isAnagram = true;
}else{
isAnagram = false;
break;
}
}else{
isAnagram = false;
break;
}
}
return isAnagram;
}
public HashMap getStringMap(String s){
HashMap set = new HashMap();
for(int i = 0;i < s.length();i++){
if(!set.containsKey(String.valueOf(s.charAt(i)))){
set.put(String.valueOf(s.charAt(i)),1);
}else{
int count = (int)set.get(String.valueOf(s.charAt(i)));
count+=1;
set.put(String.valueOf(s.charAt(i)),count);
}
}
return set;
}
}
更多 LeetCode 相關資源
複習程式面試書籍
除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備。
需要的話可以看看,寫得很仔細。
需要的話可以看看,寫得很仔細。

沒有留言:
張貼留言