這題要比出兩個陣列是否相等,即使陣列裡面的字元排序不一樣也算相等
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; } HashMapsetS = 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 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備。
需要的話可以看看,寫得很仔細。
需要的話可以看看,寫得很仔細。
沒有留言:
張貼留言