Python 查找两个字符串间的差异程序

Python 查找两个字符串间的差异程序

在这个教程中,我们将编写一个Python程序来查找两个给定字符串间的差异。这个问题可以在面试中被问到。让我们先理解问题陈述,然后再解决方案。

问题陈述 –

有两个给定的字符串 st。 字符串t是通过将字符串s随机洗牌,然后在任意随机位置添加了一个字符而生成的。我们需要编写一个Python程序,返回添加到 t 的字母。

示例

Input: s = "zxyc", t = "zxyce"
Output: "e"
Explanation: 'e' is the letter that was added.

示例

Input: s = "uvw", t = "wyu"
Output: "y"
Explanation: 'e' is the letter that was added.

约束条件:

应遵循以下约束条件 –

  • 0 <= s.length <= 1000
  • t.length == s.length + 1
  • s和t由小写英文字母组成。

Python程序

让我们了解以下Python程序。

示例

class Solution(object):
    def findTheDifference(self, s, t):
        ls_s = [s[i] for i in range(len(s))]
        ls_t = [t[i] for i in range(len(t))]
        for elem in ls_s:
            ls_t.remove(elem)
        return(ls_t[0])
obj = Solution()
s = "zxyc"
t = "zxyce"
print(obj.findTheDifference(s, t)

输出:

'e'

解释 –

在上面的代码中,我们定义了findThedifference()函数,它以两个字符串作为参数。我们使用列表推导将字符串转换为列表。现在,我们迭代 ls_s 列表,选择单个元素并将该元素从第二个列表 ls_t 中删除。如果从第二个列表中删除了所有元素,则表示两个给定字符串相同,否则返回第二个列表的第一个元素。

解决方案 – 2

让我们看看问题的另一个解决方案。

class Solution:
    def findTheDifference(self, s: str, t: str) -> str:
        #sort both the strings
        s_list = sorted(s) 
        t_list = sorted(t)
        s_list.append(0) #to make the length equal else we will get list index out of bounds (1 extra char in string2)
        for i in range(len(t_list)):
            if s_list[i] != t_list[i]: #if character at i not same for both the strings, we get our answer 
                return t_list[i]
obj = Solution()
s = "zxyc"
t = "zxyce"
print(obj.findTheDifference(s, t)

输出:

e

说明 –

在本教程中,我们使用 sorted() 方法,将字符串转换为按照顺序排序的字符列表。我们创建了两个字符串列表,并添加了一个额外的元素0,以使长度相等;否则,我们将得到列表索引超出界限的错误。现在我们迭代t_list,并检查 s_list 的元素是否不等于t_list;如果匹配条件,则返回该元素。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程