首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python 3中,一个字符可能不同的字符串中出现了的数量

在Python 3中,一个字符可能不同的字符串中出现了的数量
EN

Stack Overflow用户
提问于 2018-12-19 05:19:14
回答 4查看 503关注 0票数 0

我在Python部分的codingbat.com上发现了这个问题。问题的标题是: String-2 > count_code。

返回字符串"code“在给定字符串中任何位置出现的次数,但我们将接受”d“的任何字母,因此"cope”、"cooe“、"coze”等都会计算在内。,但"co5e“、"co)e”等不算在内,因为'd‘索引中只允许一个字母。

我用粗体加了这个部分(不是在原来的问题中)。我想知道是否有一种简短的方法来编写代码,而不列出所有的字母。我的代码目前看起来如下:

代码语言:javascript
复制
def count_code(string):
   count = 0
   for i in range(len(string) - 3):
      if string[i:i+2] == "co" and (string[i+2] == "a" or string[i+2] == "b" or str[i+2] == "c" or str[i+2] == "d" or str[i+2] == "e" or #you get the idea) and str[i+3] == "e":
         count += 1
   return count    

我希望这是解释性的。链接到原来的问题是:https://codingbat.com/prob/p186048,我会感谢所有的答案。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-12-19 05:38:19

也许这段代码会有帮助:

代码语言:javascript
复制
def count_code(str):
   i, ans = 0, 0
   while i < len(str) - 3:
      if str[i:i+2] == 'co' and str[i+3] == 'e':
         # the catch
         if str[i+2] >= 'a' and str[i+2] <= 'z':
            i += 4
            ans += 1
         else:
            i += 1
      else:
          i += 1
   return ans

我建议你不要问任何问题,从竞争的编程站点上的堆栈溢出,这个平台完全是为了不同的目的。

票数 1
EN

Stack Overflow用户

发布于 2018-12-19 05:30:15

编辑:原始问题链接不允许导入,因此不能使用re模块。请参阅Jarvis的解决方案,以使其与该特定的网站工作。然而,使用regex是解决此类问题的首选方法,因此我将在这里留下这个答案。

对于需要这种模式匹配的问题,您应该使用正则表达式。这是官方文档中的RegEx如何,但是您可以在网上找到许多教程。

解决这个问题所需的表达是非常基本的,因为这些问题是为了帮助您学习,所以请您自己尝试之后再看下面的答案。

‘create’您将使用上面的内容创建一个模式,然后调用输入字符串上的findall方法。这将返回一个匹配列表,因此匹配的数量将为len(resultlist)

票数 0
EN

Stack Overflow用户

发布于 2018-12-19 05:49:12

这段代码通过了所有测试。

代码语言:javascript
复制
def count_code(str):
  n = len(str)
  if n <= 3:
    return 0
  count = 0
  for i in range(n - 3):
    temp = str[i: i + 4]
    if temp[0:2] == 'co':
      if (ord(temp[2]) >= ord('a') and ord(temp[2]) <= ord('z')) or (ord(temp[2]) >= ord('A') and ord(temp[2]) <= ord('Z')):
        if temp[3] == 'e':
          count += 1

  return count

我已经使用ascii值来检查第三个字符。

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

https://stackoverflow.com/questions/53845014

复制
相关文章

相似问题

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