| 15 | // 1. Brute force approach |
| 16 | // Time Complexity: O(n2) | Space Complexity: O(1) |
| 17 | public boolean isAnagramUsingBruteForce(String s, String t) { |
| 18 | |
| 19 | if (s.length() != t.length()){ |
| 20 | return false; |
| 21 | } |
| 22 | else if(s.isEmpty()){ |
| 23 | return true; |
| 24 | } |
| 25 | |
| 26 | boolean isAnagram = false; |
| 27 | |
| 28 | boolean [] visited = new boolean[t.length()]; |
| 29 | |
| 30 | for(int i=0; i<s.length(); i++){ |
| 31 | isAnagram = false; |
| 32 | |
| 33 | for(int j=0; j<t.length(); j++){ |
| 34 | if(s.charAt(i) == t.charAt(j) && !visited[j]){ |
| 35 | isAnagram = true; |
| 36 | visited[j] = true; |
| 37 | break; |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | if(!isAnagram){ |
| 42 | return false; |
| 43 | } |
| 44 | } |
| 45 | |
| 46 | return isAnagram; |
| 47 | } |
| 48 | |
| 49 | // 2. Sorting approach |
| 50 | // Time Complexity: O(nlogn) | Space Complexity: O(n) |