[CrackCode] 1.4 Write a method to decide if two strings are anagrams or not
来源:互联网 发布:手机天文软件 编辑:程序博客网 时间:2024/05/21 08:57
Write a method to decide if two strings are anagrams or not
============
Analysis:
Solution1, no extract space O(n^2).
Solution 2 and 3, O(n).
public class Answer {public static boolean solution(String str1, String str2){if (str1.length()!=str2.length()) return false;for(int i=0; i<str1.length(); i++){int j=0;boolean found = false;while (j<str2.length()) {if(str1.charAt(i) == str2.charAt(j)){if(j<str2.length()-1) str2 = str2.substring(0, j) + str2.substring(j+1);else str2 = str2.substring(0,j);found = true;break; // character found}j++;}if (found == false) return false;}return true;}public static boolean solution2(String str1, String str2){if(str1.length()!=str2.length()) return false;int[] char_set = new int[256];for(int i=0; i<str1.length(); i++){char_set[str1.charAt(i)]++;}for(int i=0; i<str2.length(); i++){if(char_set[str2.charAt(i)]==0) return false;else char_set[str2.charAt(i)]--;}for(int i=0; i<char_set.length; i++){if(char_set[i]!=0) return false;}return true;}public static boolean solution3(String str1, String str2){char[] array1 = str1.toCharArray();char[] array2 = str2.toCharArray();Arrays.sort(array1);Arrays.sort(array2);for (int i=0; i<array1.length; i++){if (array1[i] != array2[i]) return false;}return true;}public static void main(String[] args) {String[][] pairs = {{"apple", "papel"}, {"carrot", "tarroc"}, {"hello", "llloh"}};for (String[] pair : pairs) {String word1 = pair[0];String word2 = pair[1];boolean anagram = solution2(word1, word2);System.out.println(word1 + ", " + word2 + ": " + anagram);}}}
0 0
- [CrackCode] 1.4 Write a method to decide if two strings are anagrams or not
- 【4】Decide if two strings are anagrams or not
- Given two binary trees, write a function to check if they are equal or not.
- Two Strings Are Anagrams
- Two Strings Are Anagrams
- Two Strings Are Anagrams
- Two Strings Are Anagrams
- Two Strings Are Anagrams-LintCode
- #158 Two Strings Are Anagrams
- [Amazon] Two Strings Are Anagrams (Compare Strings)
- Lintcode158 Two Strings Are Anagrams solution 题解
- 【6】Decide if one string is a rotation of another string or not
- Given two strings s and t, write a function to determine if t is an anagram of s.
- Given two strings s and t, write a function to determine if t is an anagram of s.
- [CrackCode] 1.2 Write code to reverse a C-Style String
- How to Determine if Two Words Are Anagrams of Each Other in C# (转)
- LintCode Two Strings Are Anagrams 两个字符串是变位词
- [LintCode]Two Strings Are Anagrams(C++|Java|Python)
- ood
- Insertion Sort List (LeetCode)
- 2014年1月14日(DEMO7-2,加载PLG)
- Evaluate Reverse Polish Notation (LeetCode)
- Sort List (LeetCode)
- [CrackCode] 1.4 Write a method to decide if two strings are anagrams or not
- 鼠标右键
- HDU 4549 M斐波那契数列 (费马小定理降幂&矩阵快速幂)
- Reorder List (LeetCode)
- 已知递推式求第N项的O(logN)算法 (递推式转化为矩阵)
- 同步方法和lock的区别
- css常用属性
- quicksort
- 领域驱动设计案例【Tiny Library用户界面】