码迷,mamicode.com
首页 > 编程语言 > 详细

LintCode日记(一)——两个字符串是变位词(C++,Python)

时间:2017-08-17 10:49:11      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:问题   python   tin   solution   通过   引入   list   ram   write   

题目描述:

写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。

解题思路:

C++:引入哈希的思维,这道题就迎刃而解了。

C++ Code:

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 dic[58];
        for (int i = 0; i < 58; i++)
            dic[i] = 0;
        for ( int i = 0; i < s.size(); i++ )
        {
            if (s[i] == ‘ ‘)
                continue;
            int index = s[i] - ‘A‘;
            dic[index]++;
        }
        for ( int i = 0; i < t.size(); i++ )
        {
            if (t[i] == ‘ ‘)
                continue;
            int index = t[i] - ‘A‘;
            dic[index]--;
        }
        for ( int i = 0; i < 58; i++ )
        {
            if (i==57 && dic[i]==0)
                return true;
            if (dic[i] == 0)
                continue;
            else
                return false;
        }
    }
};

Python:利用Python的list()方法与sort()方法就可以成功地解决这道问题。

Python Code:

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
        a = list(s)
        b = list(t)
        a.sort()
        b.sort()
        if a == b:
            return True
        else:
            return False

LintCode日记(一)——两个字符串是变位词(C++,Python)

标签:问题   python   tin   solution   通过   引入   list   ram   write   

原文地址:http://www.cnblogs.com/matthewli/p/7376738.html

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