【问题标题】:Missing characters in a combination of string and integer字符串和整数的组合中缺少字符
【发布时间】:2021-08-26 09:53:28
【问题描述】:

到目前为止,我已经创建了一个返回缺失字符串的字符。我们也可以将它与整数混合吗?例如:

输入:"3629aghrjlsbwofhe"

输出:"014578bcdikmnpqtuvxyz"

字母字符串的当前代码:

def missingCharacters(Str):
    
    MAX_CHAR = 26
    
    x = [False for i in range(MAX_CHAR)]
    

    for i in range(len(Str)):
        if (Str[i] >= 'a' and Str[i] <= 'z'):
            x[ord(Str[i]) - ord('a')] = True
        
    result = ""
 
    for i in range(MAX_CHAR):
        if (x[i] == False):
          result += chr(i + ord('a'))
        
    return result

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您可以使用一些 string 实用程序和条件生成器表达式执行以下操作:

    from string import digits, ascii_lowercase
    
    def missingCharacters(s):
        # if s is long, this will make the repeated membership test O(1)
        # s = set(s)   
        return "".join(c for c in digits + ascii_lowercase if c not in s)
    
    missingCharacters("3629aghrjlsbwofhe")
    # '014578cdikmnpqtuvxyz'
    

    【讨论】:

      【解决方案2】:

      我认为此功能适用于您的大学或公司的一些任务。对于您的问题,这可能是一个幼稚的解决方案,以清晰地展示我们的方法。只是您的数字代码的列表更新。

      def missingCharacters(Str):
          
          MAX_CHAR = 26
          
          x = [False for i in range(MAX_CHAR)]
          y = []
          
      
          for i in range(len(Str)):
              if (Str[i] >= 'a' and Str[i] <= 'z'):
                  x[ord(Str[i]) - ord('a')] = True
              if (Str[i].isdigit()):
                  y.append(int(Str[i]))
              
          
          result = "".join(str(x) for x in range(10) if x not in y)
      
          for i in range(MAX_CHAR):
              if (x[i] == False):
                result += chr(i + ord('a'))
              
          return result
      

      【讨论】:

        猜你喜欢
        • 2013-03-13
        • 1970-01-01
        • 2015-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多