zoukankan      html  css  js  c++  java
  • leetcode 1071 字符串的最大公因子

    题目描述:

    对于字符串 S 和 T,只有在 S = T + ... + TT 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。

    返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2

    示例 1:

    输入:str1 = "ABCABC", str2 = "ABC"
    输出:"ABC"
    示例 2:

    输入:str1 = "ABABAB", str2 = "ABAB"
    输出:"AB"
    示例 3:

    输入:str1 = "LEET", str2 = "CODE"
    输出:""

    提示:

    1 <= str1.length <= 1000
    1 <= str2.length <= 1000
    str1[i] 和 str2[i] 为大写英文字母

    解题思路:

    需要知道一个性质:如果 str1 和 str2 拼接后等于 str2和 str1 拼接起来的字符串(注意拼接顺序不同),那么一定存在符合条件的字符串 X

    代码如下:

    class Solution {
        public String gcdOfStrings(String str1, String str2) {
                   if(!str1.concat(str2).equals(str2.concat(str1))) {
    			return "";
    		}
    		else{
    			int length1=str1.length();
    			int length2=str2.length();
    			int size=0;
    			int length=length1>=length2?length2:length1;
    			for(int count=length;count>=2;count--)
    			{
    				if(length1%count==0&length2%count==0)
    				{
    					size=count;
    					break;
    				}
    			}
    			return str1.substring(0, size);
    		}
             }
    }
    

    来源:力扣(LeetCode)

    链接:https://leetcode-cn.com/problems/greatest-common-divisor-of-strings
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 相关阅读:
    jdk环境变量配置
    智商太低,竟然算不出病狗神题了
    HDU 1284 钱币兑换问题 母函数、DP
    linux下实现监控进程网络带宽
    编程算法
    C語言 rand函数 进阶探讨与实现
    JDBCUtil
    iOS进阶路线以及进阶书籍
    Windows平台CUDA开发之前的准备工作
    数据库中substring的用法 CONVERT(varchar(12) , getdate(), 112 )
  • 原文地址:https://www.cnblogs.com/longlyseul/p/12482055.html
Copyright © 2011-2022 走看看