首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >随机文本(打印黑客地球)中的打印计数(字数)

随机文本(打印黑客地球)中的打印计数(字数)
EN

Stack Overflow用户
提问于 2016-11-15 09:55:42
回答 2查看 170关注 0票数 1

我试图从任何给定的字符串中找出固定单词的出现数。

固定单词= 'hackerearth

随机字符串可以是s= 'aahkcreeatrhaaahkcreeatrha

现在,我们可以从字符串中生成2次黑客地球。

我编写了一些代码来查找字符串中(h,a,e,r,c,k,t)的字母数:

代码:

代码语言:javascript
代码运行次数:0
运行
复制
word = list(raw_input())
print word

h = word.count('h') 
a = word.count('a')
c = word.count('c')
k = word.count('k')
e = word.count('e')
r = word.count('r')
t = word.count('t')

if (h >= 2 and a >= 2 and e >= 2 and r >=2) and (c >= 1 and k >= 1 and t >=1 ):
    hc = h/2
    ac = a/2
    ec = e/2
    rc = r/2

    num_words = []
    num_words.append(hc)
    num_words.append(ac)
    num_words.append(ec)
    num_words.append(rc)
    num_words.append(c)
    num_words.append(k)
    num_words.append(t)

print num_words

输出:

代码语言:javascript
代码运行次数:0
运行
复制
[2, 4, 2, 2, 2, 2, 2]

从上面的输出列表中,我要计算单词的总出现量。

如何获得固定单词的总数以及其他使代码更容易的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-15 10:15:44

你可以利用Counter

代码语言:javascript
代码运行次数:0
运行
复制
from collections import Counter

s = 'aahkcreeatrhaaahkcreeatrha'
word = 'hackerearth'

wd = Counter(word)
sd = Counter(s)

print(min((sd.get(c, 0) // wd[c] for c in wd), default=0))

输出:

代码语言:javascript
代码运行次数:0
运行
复制
2

上面的代码将创建两个类似于dict的计数器,其中字母是键,它们的出现是值。然后,它将使用生成器表达式迭代在单词中找到的字母,并为每个字母生成比率。min将选择最低比率,0default值用于word为空字符串的情况。

票数 2
EN

Stack Overflow用户

发布于 2016-11-15 10:17:25

查找子字符串时,需要说明字符顺序,而不仅仅是计数。

像这样的事情应该有效:

代码语言:javascript
代码运行次数:0
运行
复制
def subword(lookup,whole):
    if len(whole)<len(lookup):
          return 0
    if lookup==whole:
          return 1
    if lookup=='':
          return 1
    if lookup[0]==whole[0]:
         return subword(lookup[1:],whole[1:])+subword(lookup,whole[1:])
    return subword(lookup,whole[1:])

例如:

代码语言:javascript
代码运行次数:0
运行
复制
In [21]: subword('hello','hhhello')
Out[21]: 3

因为您可以选择3个h中的每一个,并用其余的构造hello这个单词。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40606805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档