【LeetCode:1071. 字符串的最大公因子 + 模拟 + 最大公约数】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🚩 题目链接

⛲ 题目描述

对于字符串 s 和 t,只有在 s = t + t + t + … + t + t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。

给定两个字符串 str1 和 str2 。返回 最长字符串 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, str2.length <= 1000
str1 和 str2 由大写英文字母组成

🌟 求解思路&实现代码&运行结果


⚡ 模拟 + 最大公约数

🥦 求解思路
  1. 如果字符串(str1 + str2) 不等于 (str2 + str1),直接返回 “” ,否则,我们通过辗转相除法计算俩个字符串长度的最大公约数 ans,最后直接从0位置开始,到ans位置结束,截取str1或者str2字符串,返回截取的字符串即可。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下递归和迭代的解法。
🥦 实现代码
class Solution {
    public String gcdOfStrings(String str1, String str2) {
        if (!(str1 + str2).equals(str2 + str1)) {
            return "";
        }
        return str1.substring(0, gcd(str1.length(), str2.length()));
    }

    private int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

相关推荐

  1. [leetcode] 1071. 字符串因子

    2024-07-12 15:48:03       32 阅读
  2. 算法---字符串因子

    2024-07-12 15:48:03       56 阅读
  3. 【数据结构和算法】字符串因子

    2024-07-12 15:48:03       52 阅读
  4. Leetcode.2709 公约数遍历

    2024-07-12 15:48:03       32 阅读
  5. 25.公因数 公倍数

    2024-07-12 15:48:03       37 阅读
  6. 优雅公约数函数

    2024-07-12 15:48:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 15:48:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 15:48:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 15:48:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 15:48:03       69 阅读

热门阅读

  1. 使用GeographicLib在C++中进行地理坐标转换

    2024-07-12 15:48:03       22 阅读
  2. 使用Gunicorn提高Web应用的多核并发处理能力

    2024-07-12 15:48:03       25 阅读
  3. Vue使用socket实现实时通信

    2024-07-12 15:48:03       26 阅读
  4. golang使用migrate迁移pg数据库表报错处理

    2024-07-12 15:48:03       23 阅读
  5. C#,开发过程中技术点GPT问答记录

    2024-07-12 15:48:03       20 阅读
  6. 学生管理系统(残缺版)

    2024-07-12 15:48:03       22 阅读
  7. IPython多核并行编程指南:并发任务处理

    2024-07-12 15:48:03       23 阅读
  8. 【LeetCode】快乐数

    2024-07-12 15:48:03       22 阅读
  9. 数据分析如何正确地学习与使用

    2024-07-12 15:48:03       22 阅读