首页 > 分享 > 一、字符串的最大公因子(Weekly Contest 138)

一、字符串的最大公因子(Weekly Contest 138)

最新推荐文章于 2020-04-26 12:39:38 发布

wenbaoxie 于 2019-06-20 21:10:24 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

题目描述:
对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 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中先得到最大公因子数,然后尝试进行拼接,看能否,否则继续
代码:

class Solution { public String gcdOfStrings(String str1, String str2) { //默认的是str1的长度大于str2的长度if(str1.length() < str2.length()){String tem = str1;str1 = str2;str2 = tem;}if(!str1.contains(str2)){return "";}int len1 = str1.length();int len2 = str2.length();int index = len2;while (index >= 1) {if(len1 % index == 0 && len2 % index == 0){ //尝试拼接String tem = str2.substring(0,index);StringBuffer sb1 = new StringBuffer(tem);while (sb1.length() != str1.length()) {sb1.append(tem);}StringBuffer sb2 = new StringBuffer(tem);while (sb2.length() != str2.length()) {sb2.append(tem);}if(new String(sb1).equals(str1) && new String(sb2).equals(str2)){return tem;}}index --;}return ""; } }

123456789101112131415161718192021222324252627282930313233343536

一开始以为这样的思路很傻,但是后面发现普遍是这样来的。。。

相关知识

Pets Photo Contest
获取一个字符串在另一个字符串中出现的次数。 比如:获取sub= “AB“”在 “str = “ABACBABAABAC“ 中出现的次数。
蓝桥杯 算法训练 字符串编辑
宠物狗选美大赛:谁的打扮最时尚?
将一个字符串“abc”赋给字符串变量 str 的方法是 str=“abc”.
在javascript中JSON对象和JSON字符串的转换及取值
请问宠物区的大神们,字符串怎么用? NGA玩家社区
二、或运算的最小翻转次数(Weekly Contest 171)
String(字符串)的练习
怕鸟、蜘蛛、昆虫、狗……有特定恐惧症的人怎么越来越多了?|WEEKLY

网址: 一、字符串的最大公因子(Weekly Contest 138) https://m.mcbbbk.com/newsview220750.html

所属分类:萌宠日常
上一篇: 宠物狗的各种比赛规则
下一篇: 狗狗比赛是怎么分类的?