Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの回文部分文字列


文字列があるとします。この文字列に存在するパリンドローム部分文字列の数を数える必要があります。開始インデックスまたは終了インデックスが異なるサブストリングは、同じ文字で構成されている場合でも、異なるサブストリングとしてカウントされます。したがって、入力が「aaa」の場合、「a」、「a」、「a」、「aa」、「aa」、「aaa」などの6つのパリンドロームサブストリングがあるため、出力は6になります。

これを解決するには、次の手順に従います-

  • count:=0
  • 文字列の場合は0から長さの範囲のiの場合
    • i+1から文字列の長さ+1までの範囲のjの場合
      • temp:=インデックスiからjへの部分文字列
      • 温度が回文の場合は、カウントを1増やします
  • リターンカウンター

例(Python)

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def countSubstrings(self, s):
      counter = 0
      for i in range(len(s)):
         for j in range(i+1,len(s)+1):
            temp = s[i:j]
            if temp == temp[::-1]:
               counter+=1
      return counter
ob1 = Solution()
print(ob1.countSubstrings("aaaa"))
入力
"aaaa"

出力

10

  1. Pythonで文字列を逆にする

    文字の配列があるとします。追加のスペースを使用せずに文字列を反転する必要があります。したがって、文字列が[H、E、L、L、O]のような場合、出力は[O、L、L、E、 H] これを解決するには、次の手順に従います- 2つのポインタを使用して、開始=0および終了=文字列の長さ– 1 最初と最後の文字を入れ替える 開始を1増やし、終了を1減らします 例 理解を深めるために、次の実装を見てみましょう- class Solution(object):    def reverseString(self, s):       "&q

  2. Pythonのcasefold()文字列

    この関数は、単語の文字を小文字に変換するのに役立ちます。 2つの文字列に適用すると、文字の大文字小文字の種類に関係なく、それらの値と一致する可能性があります。 casefold()の適用 以下の例では、casefold()関数を文字列に適用すると、結果はすべて小文字で出力されます。 例 string = "BestTutorials" # print lowercase string print(" lowercase string: ", string.casefold()) 出力 上記のコードを実行すると、次の結果が得られます- Lowerca