LintCode_chapter1_section4_anagrams

coding = utf-8

'''
Created on 2015年11月5日

@author: SphinxW
'''
乱序字符串

给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。
您在真实的面试中是否遇到过这个题?
样例

对于字符串数组 ["lint","intl","inlt","code"]

返回 ["lint","inlt","intl"]
注意

所有的字符串都只包含小写字母

class Solution:
    # @param strs: A list of strings
    # @return: A list of strings

    def anagrams(self, strs):
        # write your code here
        countStrs = {}
        result = []
        for index, item in enumerate(strs):
            countItem = self.countChars(item)
            try:
                if index not in countStrs[countItem]:
                    countStrs[countItem].append(index)
            except KeyError:
                countStrs[countItem] = [index, ]
        for key, item in countStrs.items():
            if len(item) > 1:
                for s in item:
                    result.append(strs[s])
        return result

    def anagram(self, s, t):
        countsS = self.countChars(s)
        countsT = self.countChars(t)
        return countsS == countsT

    def countChars(self, stringToCount):
        result = []
        for item in range(ord("z") - ord("A")+1):
            result.append(0)
        for item in stringToCount:
            result[ord(item) - ord("A")] += 1
        return str(result)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这是一道中等难度的字符串题目。本来按照我的想法,我觉得逻辑上没有问题,但是出在JAVA上的细节问题。虽然,我的逻辑...
    2a25936eedd9阅读 2,669评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,771评论 0 4
  • 题目 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个...
    六尺帐篷阅读 3,587评论 0 1
  • 原题 LintCode 171. Anagrams Description Given an array of s...
    Andiedie阅读 2,707评论 0 0

友情链接更多精彩内容