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

Pythonの文字列の最大公約数


2つの文字列AとBがあるとします。AがBを1回以上連結して作成された場合、AはBで割り切れると言えます。したがって、A =“ abcabc”、B =“ abc”の場合、AはBで割り切れます。このセクションでは、文字列の最大公約数を確認します。したがって、両方の文字列を分割する最大の文字列を返します。したがって、2つの文字列が「ABABAB」と「ABAB」の場合、GCDは「AB」になります

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

  • temp:=AとBの間の短い文字列
  • m:=温度の長さ
  • x:=1
  • resは配列であり、resに「」を挿入します
  • AとBにサイズxの部分文字列がある場合、その部分文字列をresに追加し、xを1増やします
  • 最後にres配列の最後の要素を返します。

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

class Solution(object):
   def gcdOfStrings(self, str1, str2):
      if len(str1)<=len(str2):
         temp = str1
      else:
         temp = str2
      m = len(temp)
      x = 1
      res=[""]
      while x<=m:
         if m%x==0 and temp[:x] * (len(str1)//x) == str1 and temp[:x] * (len(str2)//x) == str2:
            res.append(temp[:x])
         x+=1
      return res[-1]
ob1 = Solution()
print(ob1.gcdOfStrings("ABABAB","ABAB"))

入力

"ABABAB"
"ABAB"

出力

AB

  1. Python-Matrixで最も一般的な組み合わせ

    マトリックス内で最も一般的な組み合わせを見つける必要がある場合は、「sort」メソッドと「Counter」メソッドとともに、単純な反復が使用されます。 例 以下は同じもののデモンストレーションです from collections import Counter from itertools import combinations my_list = [[31, 25, 77, 82], [96, 15, 23, 32]] print("The list is :") print(my_list) my_result = Counter() for elem in

  2. Excelで最小公倍数または最大公約数を見つける

    Microsoft Excel 数学的計算を容易にするのに役立つことが知られています。足し算や引き算などの簡単な数式のツールは誰もが知っていますが、より複雑な数式に移行すると、数式を使用してExcelで関数を処理する必要があります。 Excelで最小公倍数または最大公約数を見つける そのようなケースの1つは、Excelで最小公分母または最大公約数を見つけようとしているときです。 Excelで最小公倍数または最大公約数を見つけたい場合は、次の手順を確認してください。 ある範囲の数値の最小公倍数(LCM)を見つける さまざまな数値の最大公約数(GCD)を見つけます。 1]Excelで数値