zoukankan      html  css  js  c++  java
  • [每日一题系列] LeetCode 1071. 字符串的最大公因子

    题目

    对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。
    返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。

    来源:力扣(LeetCode)
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题解

    首先假设这两个字符串都是由一个(且最长)子串X生成的,那么很容易想到S串和T串都是X的重复,则S=k个X,T=n个X,则S+T == T+S == (k+n)个X 则如果S+T == T+S,则有解,否则直接返回空串表示无解。

    然后S和T都是X的倍数,则最长X为他们长度的最大公因子(题目都写了)

    代码

    ```java public class Solution { public String gcdOfStrings(String str1, String str2) { if ((str1+str2).equals(str2+str1)) return str1.substring(0,GCD(str1.length(),str2.length())); else return ""; } public int GCD(int a,int b) { if(a==0) return b; if(b==0) return a; if(!(a%2==1)&&!(b%2==1)) { return GCD(a>>1,b>>1)<<1; } else if(!(b%2==1)) { return GCD(a,b>>1); } else if(!(a%2==1)) { return GCD(a>>1,b); } else { return GCD(Math.abs(a-b),Math.min(a,b)); } } } ```
    %1
  • 相关阅读:
    员工转正考核
    前端高级技术考察
    前端基础技术考察
    高级前端评定表
    初级前端评定表
    前端工程师等级评定
    前端软实力
    Decode Ways
    深度学习在目标跟踪中的应用
    Interleaving String
  • 原文地址:https://www.cnblogs.com/JethroYu/p/12467001.html
Copyright © 2011-2022 走看看