zoukankan      html  css  js  c++  java
  • LeetCode-0312

    1071.字符串的最大公因子

    def gcdOfStrings(str1,str2):
        #反向查找,找到可以被整除的子串长度,判断子串是否满足多次连接
        for i in range(min(len(str1),len(str2)),0,-1):
            print(i,str1[:i])
            if len(str1)%i ==0 and len(str2)%i ==0:
                if str1[:i]*(len(str1)//i) == str1 and str1[:i]*(len(str2)//i) == str2:
                    return str1[:i]
        return ""
    
    #如果 str1 和 str2 拼接后等于 str2和 str1 拼接起来的字符串(注意拼接顺序不同),那么一定存在符合条件的字符串 X
    def gcdOfStrings(str1,str2):
        import math
        gcd = math.gcd(len(str1),len(str2))
        substr = str1[:gcd]
        if str1 + str2 == str2+str1:
            return substr
        return ""
    

    3.无重复字符的最长子串

    def lengthOfLongestSubstring(s):
        if s:
            left,right = 0,1
            maxlen =0
            dic = []
            dic.append(s[left])#存储已经见过的字符
            while left<=right and right<len(s):
    #             print(dic,left,right,maxlen)
                if s[right] not in dic:#判断是否出现过
                    dic.append(s[right])
                    maxlen = max(right-left+1,maxlen)
                    right += 1
                else:
                    index = dic.index(s[right])
                    left += index+1     #出现过,移动left跳过该值
                    dic = dic[index+1:]  #更新
            return maxlen
        else:
            return 0
    
    s = "pwwkew"
    lengthOfLongestSubstring(s)
    

    输出:

    ['p'] 0 1 0
    ['p', 'w'] 0 2 2
    [] 2 2 2
    ['w'] 2 3 2
    ['w', 'k'] 2 4 2
    ['w', 'k', 'e'] 2 5 3
    ['k', 'e'] 3 5 3

  • 相关阅读:
    Net163网页测试
    单片机无线上网的几种方式
    5V到3V3的电平转换-串口通信
    uart rs232 rs485
    转:TI公司CC系列的各种芯片的区别
    OpenWrt 路由器固件
    cortex-m4 不能运行Linux, 可以运行 uclinux, ucos iii
    Lwip Uip
    Java-06-交换两个变量的值
    Java-05-比较equals()与== [转载]
  • 原文地址:https://www.cnblogs.com/gongyanzh/p/12470484.html
Copyright © 2011-2022 走看看