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

文字列をチェックするプログラムがPythonで文字列を繰り返しているかどうか


文字列があるとすると、それが繰り返し文字列であるかどうかを確認する必要があります。

したがって、入力がstring ="helloworldhelloworld"のような場合、出力はTrueになります

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

  • n:=sのサイズ
  • 関数findFactors()を定義します。これにはnがかかります
  • f:=新しいセット
  • i:=1
  • i * i <=nの間、do
    • n mod iが0と同じ場合、
      • (n / i)の商をfに挿入
      • iをfに挿入
    • i:=i + 1
  • return f
  • メインの方法から、次の手順を実行します-
  • fact:=findFactors(n)
  • 実際には、iごとに
    • iがnと同じ場合、
      • 次の反復に進む
    • ss:=s[インデックス0からi-1まで]
    • val:=s内のssの出現
    • valが(n / i)の商と同じ場合、
      • Trueを返す
  • Falseを返す

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

class Solution:
   def solve(self, s):
      n = len(s)
      def findFactors(n):
         f = set()
         i = 1
         while(i * i <= n):
            if(n % i == 0):
               f.add(int(n / i))
               f.add(i)
            i+= 1
            return f
         fact = findFactors(n)
         for i in fact:
            if(i == n):
               continue
            ss = s[:i]
            val = s.count(ss)
            if(val == int(n / i)):
               return True
         return False
ob = Solution()
print(ob.solve("helloworldhelloworld"))

入力

"helloworldhelloworld"

出力

True

  1. 文字列が空かどうかをチェックするPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列を入力したら、文字列が空かどうかを確認する必要があります。 Python文字列は本質的に不変であるため、操作を実行するときは、文字列を処理するときに注意が必要です。 ここでは、上記の問題ステートメントを解決するための2つのアプローチについて説明します- len()メソッドを使用します。 等式演算子を使用します。 アプローチ1:len()メソッドを使用する 例 test_str1 = "" test_str2 = "@@@" if(l

  2. 指定された文字列がパングラムであるかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列入力が与えられた場合、その文字列がパングラムであるかどうかを確認するPythonプログラムを生成する必要があります。 パングラムは、英語のアルファベットコレクションのすべての文字を含む文/一連の単語です。 では、問題を解決する方法を見てみましょう 入力文字列に存在する各文字が、手動で宣言するアルファベットセットに属しているかどうかをチェックするループを使用します。 上記のアプローチの実装は、-によって与えられます。 例 import string def ispangram