Pythonを使用して2つの文字列を分割して回文を作成するプログラム
長さが同じ2つの文字列aとbがあるとします。インデックスを選択し、その選択したインデックスで両方の文字列を分割して、aを2つの文字列に分割する必要があります。a_prefとa_suffここで、a =a_pref | a_suff、およびbを2つの文字列に分割します。b_pref| b_suff(|は連結演算子)ここで、b =b_pref+b_suff。 a_pref+b_suffまたはb_pref+a_suffが回文を形成するかどうかを確認します。 (分割は空の文字列である可能性があります)
したがって、入力がa ="pqrst" b ="turqp"のような場合、["pq"、 "rst"]のようなbと["tu"、 "rqp"のようなbを分割できるため、出力はTrueになります。 ]、したがって、a_prefをb_suffと結合すると、回文である「pqrqp」が得られます。
これを解決するには、次の手順に従います-
-
ペアのリストからの各ペア(x、y)について[(a、b)、(b、a)]、実行
-
i:=0、j:=xのサイズ-1
-
x[i]はy[j]と同じでi
0、do -
i:=i + 1
-
j:=j-1
-
-
midx:=インデックスiからjまでのxの部分文字列
-
midy:=インデックスiからjまでのyの部分文字列
-
midxが回文であるか、midyが回文である場合、
-
Trueを返す
-
-
-
Falseを返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(a, b): for x, y in [[a, b], [b, a]]: i, j = 0, len(x) - 1 while x[i] == y[j] and i<len(x) and j>0: i += 1 j -= 1 midx = x[i:j+1] midy = y[i:j+1] if (midx == midx[::-1] or midy== midy[::-1]): return True return False a = "pqrst" b = "turqp" print(solve(a, b))
入力
"pqrst", "turqp"
出力
True
-
Pythonを使用して2つのプロットを並べて作成するにはどうすればよいですか?
subplot(row、col、index)メソッドを使用すると、図をrow * colの部分に分割し、インデックスの位置に図をプロットできます。次のプログラムでは、1つの図に2つの図を作成します。 ステップ numpyを使用してx、y1、y2ポイントを作成します。 nrows =1、ncols =2、index =1の場合、subplot()メソッドを使用して、現在の図にサブプロットを追加します。 plot()メソッドを使用して、xポイントとy1ポイントを使用して線をプロットします。 plt.title()、plt.xlabel()、およびplt.ylabel()メソ
-
2つの文字列から珍しい単語を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの文字列が与えられているので、与えられた文字列から珍しい単語を取得する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # uncommon words def find(A, B): # count count = {} # insert in A for word in A.split(): count[word] = coun