码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Valid Anagram

时间:2015-08-17 11:29:46      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

Note:
You may assume the string contains only lowercase alphabets.

 

     这道题首先还是要先明确Anagram的定义,除了字母的排序顺序可以不一样外,其他都得一样。

     因为如果两个String互为anagram,他们的length是相同的。

     所以我们可以直接新建一个length为26的int[]。(题目说了只考虑小写字母,所以26就可以了)。

     然后对于s,识别到新的字母的值就+进这个int[],而对于t,识别到新的字母的值就从int[]中移除。

     如果这两个互为anagram的话,那么这个计算完成后,这个int[]的值肯定是为0的。

     代码如下。~

public class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length()!=t.length()){
            return false;
        }
        int[] test = new int[26];
        for (int i = 0; i < s.length(); i++){
            test[s.charAt(i) - ‘a‘]++;
        } 
        for (int i = 0; i < t.length(); i++){
             test[t.charAt(i) - ‘a‘]--;
        }
        for(int i=0;i<test.length;i++){
            if(test[i]!=0){
                return false;
            }
        }
        return true;
    }
}

 

[LeetCode] Valid Anagram

标签:

原文地址:http://www.cnblogs.com/orangeme404/p/4735956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!