【问题标题】:Codewars strip comments problem randomly working/not-working for 'attempt' testsCodewars 剥离评论问题随机工作/不工作“尝试”测试
【发布时间】:2020-05-30 14:34:57
【问题描述】:

我目前正在处理 Codewars 上的 4kyu 问题,在给定一个字符串和一个字符列表的情况下,您的函数应该删除字符串中的字符以及随后的任何其他字符,直到行尾。我想出了一个我认为应该可行的解决方案。因为我需要在找到特殊字符后删除字符串中的每个字符,所以我用 '\n' 分割字符串,因为这标志着行尾。 然后我开始编写检查所有子字符串的函数:

def solution(string,markers):
  str_arr = string.split('\n')
  print(str_arr)
  new_str = []

  for substring in str_arr:
    count = 0
    for mark in markers:
        if mark in substring:
            count +=1
    if count == 0:
        new_str.append(substring)
    for char in substring:
        if char in markers:
            sbstr = substring[:substring.index(char)-1]
            new_str.append(sbstr.strip())
            if str_arr.index(substring) == len(str_arr)-1:
                break
            print(new_str)

    solution = '\n'.join(new_str)
    return solution

我首先检查子字符串中是否有标记,如果没有,我将其添加到新列表中。此解决方案适用于 Codewars 提供的大多数测试,但由于某种原因,此功能无法解决某些测试。其中之一是:

测试解决方案(“!苹果香蕉香蕉苹果-\n西瓜'\n梨樱桃橙子^苹果\ncherries西瓜草莓香蕉草莓”,['@',',','=','-',“' ", '!'])

,我的输出是:

它也应该适用于随机输入:'!苹果香蕉香蕉苹果\n!苹果香蕉香蕉苹果\n西瓜\n梨樱桃橙^苹果\ncherries西瓜草莓香蕉草莓'应该等于'\n西瓜\n梨樱桃橙^苹果\ncherries西瓜草莓香蕉草莓'

目前,我不知道如何解决这些问题,特别是因为该功能在 40/48 左右的情况下运行良好。感谢您对如何改进代码提出任何建议。

【问题讨论】:

    标签: python


    【解决方案1】:

    首先,您应该只删除尾随空格。 为此使用rstripstrip 将删除两端的空白。

    接下来,你应该加入最后的字符串。

    我将留下代码以供参考:

    def solution(string, markers):
        ss = string.split('\n')
        for i in range(len(ss)):
            s = ss[i]
            for marker in markers:
                index = s.find(marker)
                if index >= 0:
                    s = s[:index].rstrip()
            ss[i] = s
        return '\n'.join(ss)
    

    【讨论】:

    • 非常感谢!我了解您在代码中所做的事情,但我认为这应该删除标记,它在大多数情况下都这样做了,所以我不太明白为什么它在某些情况下确实有效,但对其他情况无效:sbstr = substring[:substring.index(char)-1] new_str.append(sbstr.rstrip())
    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多