logo

2 つの文字列の違いを見つける Python プログラム

このチュートリアルでは、指定された 2 つの文字列の違いを見つける Python プログラムを作成します。この問題は面接で聞かれることがあります。問題文を理解してから、解決策にアプローチしてみましょう。

問題文 -

指定された文字列は 2 つあります s そして t. 文字列 t は、文字列 s をランダムにシャッフルして生成され、任意の位置にもう 1 文字追加されます。に追加された文字を返す 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</li'>
  • 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 = &apos;zxyc&apos; t = &apos;zxyce&apos; print(obj.findTheDifference(s, t) 

出力:

 &apos;e&apos; 

説明 -

Javaでのintからstringへの変換

上記のコードでは、2 つの文字列を引数として受け取る findThedifference() 関数を定義しました。リスト内包表記を使用して文字列をリストに変換しました。さて、繰り返します ls_s リストから 1 つの要素を選択し、その要素を 2 番目のリストに削除します ls_t。 2 番目の要素からすべての要素が削除された場合は、指定された両方の文字列が同じであることを意味し、そうでない場合は 2 番目のリストの最初の要素を返します。

解決策 - 2

問題の別の解決策を見てみましょう。

 class Solution: def findTheDifference(self, s: str, t: str) -&gt; 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 = &apos;zxyc&apos; t = &apos;zxyce&apos; print(obj.findTheDifference(s, t) 

出力:

 e 

説明 -

Javaランダム数学ランダム

このチュートリアルでは、 ソート済み() メソッド。文字列をソートされた方法で文字のリストに変換します。文字列の 2 つのリストを作成し、長さを等しくするために 0 として追加の要素を追加しました。そうしないと、リストのインデックスが範囲外になってしまいます。ここで、t_list を反復処理して、 s_list 要素が t_list と等しくありません。条件が一致すると、その要素が返されます。