1. 程式人生 >實用技巧 >其它 >字串的最大因子

字串的最大因子


技術標籤:筆記

在一本c書上看到的練習,看得莫名其妙。
就是找出一個字串s裡的因子sample,
sample*n=s,把最大的n求出來。在python裡這都不是事,到c裡面可能要設好幾個counter。或者,你可以先用python實現,再翻譯成c。

def maxsub(s):
    lns=len(s)
   
    if lns ==0: print (0);return
    if lns==1:print(1);return
    else: 
        for i in range(1,lns//2+1):
            if lns%i==0 :
                smp=s[:i];
                e=lns//i
                j=0
                '''
                while j <e:
                    j+=1
                    if s[j*i:j*i+i]!=smp:
                        break
                if j==e:  
                   print(e);return
                '''
                if s.count(smp)==e:
                   print(s+' = ',smp+' *',e)
                   return                  
        print(1)
#---------------
maxsub ('abraabraabra')