Pythonで連結したときに回文を形成するまでS1の接頭辞とS2の接尾辞が続くようなインデックスiを見つけます
同じ長さの2つの文字列S1とS2があるとすると、S1[0…i]とS2[i+1…n-1]が与えるようなインデックスiを見つける必要があります。それらが一緒に連結されたときの回文。不可能な場合は、-1を返します。
したがって、入力がS1 ="pqrsu"、S2 ="wxyqp"の場合、出力はS1 [0..1] ="pq"、S2 [2..n-1]="ypqとして1になります。 "、次にS1 + S2 =" pqyqp "は、回文であることを示します。
これを解決するには、次の手順に従います-
-
n:=str1のサイズ
-
str:=空白の文字列
-
0からnの範囲のiの場合、実行
-
str:=str concatenate str1 [i]
-
temp:=空白の文字列
-
i + 1からnの範囲のjについては、次のようにします
-
temp:=temp concatenate str2 [j]
-
-
isPalindrome(str concatenate temp)がtrueの場合、
-
iを返す
-
-
-
-1を返す
例
理解を深めるために、次の実装を見てみましょう-
def isPalindrome(s): if s == s[::-1]: return True return False def find_index(str1, str2): n = len(str1) str = "" for i in range(n): str = str + str1[i] temp = "" for j in range(i + 1, n): temp += str2[j] if (isPalindrome(str + temp)): return i return -1 str1 = "pqrsu" str2 = "wxyqp" print(find_index(str1, str2))
入力
"pqrsu", "wxyqp"
出力
1
-
Pythonでgcd(N ^ M、N&M)が最大になるような正の数Mを見つけます
数Nがあるとすると、gcd(N ^ M、N&M)が可能な限り大きく、m
-
Pythonでパターンを見つけて置換する
単語のリストとパターンがあり、単語内のどの単語がパターンに一致するかを見つける必要があるとします。ここで、文字pの順列が存在する場合、単語はパターンに一致するため、パターン内のすべての文字xをp(x)に置き換えた後、ターゲット単語を取得します。与えられたパターンに一致する単語のリストを見つける必要があります。 たとえば、入力が[abc、 deq、 mee、 aqq、 dkd、 ccc]のようで、パターンが abbの場合、出力は[meeになります。 、「aqq」]、ここでmeeとaqqはパターン「abb」のスタイルと一致しています。ただし、「ccc」は順列ではないため、パターンではありません。