158. Valid Anagram【LintCode by java】
阿新 • • 發佈:2018-06-02
public strings color lint sort -s har valid nbsp
Description
Write a method anagram(s,t)
to decide if two strings are anagrams or not.
Clarification
What is Anagram?
- Two strings are anagram if they can be the same after change the order of characters.
Example
Given s = "abcd"
, t = "dcab"
, return true
.
Given s = "ab"
, t = "ab"
, return true
.
Given s = "ab"
, t = "ac"
, return false
.
Challenge
O(n) time, O(1) extra space
解題:題目給定兩個字符串,判斷這兩個字符串除了字符字符順序不同外,是否相等。最容易想到的還是將字符排序,判斷對位字符是否相等。不過在java中,要對字符串中的字符排序,只能轉化成字符數組,那麽就不滿足challenge條件了。但是用其他方法(例如哈希表),代碼就只能處理字母或者ASCII中的字符,有損通用性,沒什麽意思。貼一下排序方法的代碼:
1 public class Solution {
2 /**
3 * @param s: The first string
4 * @param t: The second string
5 * @return: true or false
6 */
7 public boolean anagram(String s, String t) {
8 // write your code here
9 char[]arr_s = s.toCharArray();
10 char[]arr_t = t.toCharArray();
11 Arrays.sort(arr_s);
12 Arrays.sort(arr_t);
13 return String.valueOf(arr_s).equals(String.valueOf(arr_t));
14 }
15 }
158. Valid Anagram【LintCode by java】