Pythonで文字列から文字を削除またはシャッフルすることによって形成された最長の回文を検索します
したがって、入力がpqqprrsのような場合、出力はpqrsrqpになります。
-
これを解決するには、次の手順に従います-
-
count:=サイズ256の配列、0で埋められた
-
0から文字列のサイズまでの範囲のiの場合、実行
-
count [ASCII of(string [i])]:=count [ASCII of(string [i])] + 1
-
-
begin:=空白の文字列、mid:=空白の文字列、end:=空白の文字列
-
文字:=ASCII of('a')
-
文字<=ASCIIof('z')、do
-
count [character] AND 1がゼロ以外の場合、
-
mid:=文字
-
count [character]:=count [character]-1
-
文字:=文字-1
-
-
それ以外の場合
-
0からcount[character]/ 2(整数除算)までの範囲のiの場合、実行
-
begin:=begin + character from(character)
-
-
-
文字:=文字+ 1
-
-
終了:=開始
-
終了:=リバースエンド
-
return begin concatenate character from(mid)concatenate end
例
理解を深めるために、次の実装を見てみましょう-
def get_palindrome(string): count = [0]*256 for i in range(len(string)): count[ord(string[i])] += 1 begin = "" mid = "" end = "" character = ord('a') while character <= ord('z'): if (count[character] & 1): mid = character count[character] -= 1 character -= 1 else: for i in range(count[character]//2): begin += chr(character) character += 1 end = begin end = end[::-1] return begin + chr(mid) + end string = "pqqprrs" print(get_palindrome(string))
入力
"pqqprrs"
出力
pqrsrqp
-
文字列からn番目の文字を削除するためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −文字列が与えられたので、与えられた文字列からi番目のインデックス付き文字を削除して表示する必要があります。 Pythonのどの文字列でも、インデックス付けは常に0から始まります。文字列「tutorialspoint」があるとすると、そのインデックス付けは次のように行われます- T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 次に、ステートメントを解決するためのPythonスクリプトを見てみましょう- 例 def remove
-
文字列からn番目の文字を削除するためのPythonプログラム?
文字列は文字の配列を意味するため、開始アドレスは0です。そうすれば、すべての文字のインデックスを簡単に取得できます。そのインデックス番号を入力する必要があります。次に、その要素を削除します。したがって、文字列を2つのサブ文字列に分割します。また、2つの部分は、n番目のインデックス付き文字の前と、インデックス付き文字の後の2つの部分で、この2つの文字列をマージする必要があります。 例 Input: python n-th indexed: 3 Output: pyton 説明 アルゴリズム Step 1: Input a string. Step 2: input the index p