leetcode 242. Valid Anagram

来源:互联网 发布:编程是什么 编辑:程序博客网 时间:2024/06/07 05:46

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.

Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?

这一题是一道水题。

package leetcode;public class Valid_Anagram_242 {public boolean isAnagram(String s, String t) {if(s.length()!=t.length()){return false;}int n=s.length();int[] chars1=new int[128];int[] chars2=new int[128];char[] ar1=s.toCharArray();for(int i=0;i<n;i++){chars1[ar1[i]]++;}char[] ar2=t.toCharArray();for(int i=0;i<n;i++){chars2[ar2[i]]++;}for(int i=0;i<128;i++){if(chars1[i]!=chars2[i]){return false;}}return true;}public static void main(String[] args) {// TODO Auto-generated method stubValid_Anagram_242 v=new Valid_Anagram_242();System.out.println(v.isAnagram("anagram", "nagaram"));}}
大神思路相同,解法更帅更简洁,我也要学着点。

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