[LintCode]Two Strings Are Anagrams(C++|Java|Python)

来源:互联网 发布:淘宝比较靠谱的韩代 编辑:程序博客网 时间:2024/05/18 03:48

C++ Version:

class Solution {public:    /**     * @param s: The first string     * @param b: The second string     * @return true or false     */    bool anagram(string s, string t) {        // write your code here        int count[128][2] = {0};        if (s.length() != t.length()) {            return false;        }        for (int i = 0; i < s.length(); i++) {            count[s[i]][0]++;            count[t[i]][1]++;        }        for (int i = 0; i < 128; i++) {            if (count[i][0] != count[i][1]) {                return false;            }        }        return true;    }};

Java Version:

public class Solution {    /**     * @param s: The first string     * @param b: The second string     * @return true or false     */    public boolean anagram(String s, String t) {        // write your code here        char[] a = s.toCharArray();        char[] b = t.toCharArray();        int i = 0;        int[][] count = new int[128][2];        if (a.length != b.length){            return false;        }        for (i = 0; i < a.length; i++){            count[Integer.valueOf(a[i])][0]++;            count[Integer.valueOf(b[i])][1]++;        }        for (i = 0; i < 128; i++){            if (count[i][0] != count[i][1]){                return false;            }        }        return true;    }};

Python Version:

class Solution:    """    @param s: The first string    @param b: The second string    @return true or false    """    def anagram(self, s, t):        # write your code here        if len(s) != len(t):            return False        for c in s:            if t.count(c) != s.count(c):                return False        return True

原创粉丝点击