【问题标题】:How to implement a function that differentiates between the length of a string and the characters within that string如何实现区分字符串长度和该字符串中的字符的函数
【发布时间】:2020-09-21 01:00:10
【问题描述】:

给出的问题是:如何实现一个函数,以便在输入字符串长度相同且在一个字符位置不同时返回 True,否则返回 False。 我希望根据输入字符串的长度是否相同并且恰好在一个字符位置不同而返回真或假。我现在告诉我它们的长度是否相同,但在以不同顺序给出相同的一组字母时会失败。

def sameordiffernt(string1,string2):
     str1 = string1.lower()
     str2 = string2.lower()
     count = 0
     if len(str1) == len(str2):
         print ('true1')
     else:
         print('false1')
         count = count +1
     while str1 == str2:
        print('true2')
     else:
         print('false2')
         count = count + 1
     if count == 2:
         print('false3')
     else:
         print('true')
     return

         

【问题讨论】:

  • 你能举个例子吗? “字符串长度相同,并且在一个字符位置上完全不同”
  • "car", "arc" 同一组字母但位置不同。

标签: python


【解决方案1】:

尝试以下方法看看是否可行:

def sameOrDifferent(param1, param2):
    str1 = param1.lower()
    str2 = param2.lower()
    count = 0

    numDiff = 0
    if len(str1) == len(str2):
        for index in range(len(str1)):
            if str1[index] != str2[index]:
                numDiff = numDiff + 1
        return numDiff == 1
    else:
        return False

【讨论】:

    【解决方案2】:

    您可以使用内置的zip() 函数作为pythonic 解决方案:

    def sameOrDifferent(s1, s2):
        for (c1, c2) in zip(s1, s2):
            if c1 != c2:
                print('False')
                return False;
        
        print('True')
        return True
    
    sameOrDifferent('car', 'car') # True
    sameOrDifferent('car', 'caw') # False
    

    【讨论】:

      猜你喜欢
      • 2018-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多