1. 程式人生 > >158. Valid Anagram【LintCode by java】

158. Valid Anagram【LintCode by java】

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】