Two Strings Are Anagrams

Write a method anagram(s,t) to decide if two strings are anagrams or not.

Example

Given s="abcd", t="dcab", return true.

 根据定义可知,两个字符串为anagrams,则每个字符出现的次数相同。

因此有两种解法: 1. 将两个字符串排序,如果排序后两字符串相等则返回true.

         2. 统计量字符串的中字符出现的次数是否相等。

 1 public class Solution {
 2     /**
 3      * @param s: The first string
 4      * @param b: The second string
 5      * @return true or false
 6      */
 7     public boolean anagram(String s, String t) {
 8         if (s.length() != t.length()) {
 9             return false;
10         }
11         
12         int[] count = new int[256];
13         
14         for (int i = 0; i < s.length(); i++) {
15             count[(int) s.charAt(i)]++;
16         }
17         
18         for (int i = 0; i < t.length(); i++) {
19             count[(int) t.charAt(i)] --;
20             if (count[(int) t.charAt(i)] < 0) {
21                 return false;
22             }
23         }
24         return true;
25     }
26 };

 

posted @ 2016-04-04 21:30  YuriFLAG  阅读(225)  评论(0)    收藏  举报