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

Pythonで文字列を回転する


AとBの2つの文字列があるとします。文字列Aを回転させ、回転の任意の位置でBと一致するかどうかを確認します。一致する場合はtrueを返し、そうでない場合はfalseを返します。たとえば、A ='abcde'、B ='bcdea'の場合、Aは回転させた後にBに変換できるため、答えは真になります。

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

  • AとBの両方が空の場合はtrueを返し、両方の長さが異なる場合はfalseを返します
  • A:=Aの後にAを連結する
  • i:=0、およびj:=0
  • whilei
  • Aの長さ– i + 1
  • 一方、i
  • iとjを1増やします
  • j =Bの長さの場合、trueを返します
  • jが0でない場合は、iを1減らします
  • j:=0
  • iを1増やします
  • 理解を深めるために、次の実装を見てみましょう-

    class Solution(object):
       def rotateString(self, A, B):
          if not A and not B:
             return True
          if len(A) != len(B):
             return False
          A = A*2
          i = 0
          j=0
          #print(A,B)
          while i < len(A):
             if len(A)-i+1<len(B):
                return False
             while i<len(A) and j < len(B) and A[i] == B[j]:
                #print("Here!",i,j)
                i+=1
                j+=1
             if j == len(B):
                return True
             if j:
                i-=1
             j=0
             i+=1
    ob1 = Solution()
    print(ob1.rotateString("abcde", "cdeab"))

    入力

    "abcde"
    "cdeab"

    出力

    True

    1. Pythonのcasefold()文字列

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

    2. 文字列を回転させるためのPythonでの文字列スライス

      文字列が与えられます。私たちのタスクは、文字列を2つの方法にスライスすることです。 1つは時計回りで、もう1つは反時計回りです。 1.指定された文字列を左(または反時計回り)にd個の要素(d <=n)だけ回転させます。 2.指定された文字列を右(または時計回り)にd個の要素(d <=n)だけ回転させます。 例 Input: string = "pythonprogram" d = 2 Output: Left Rotation: thonprogrampy Right Rotation: ampythonprogr アルゴリズム Step 1: Enter string