当前位置: 面试刷题>> 重复字符串匹配 (经典算法题500道)


### 题目描述补充 题目:**重复字符串匹配** 给定两个字符串 `s` 和 `p`,你的任务是检查是否可以通过将字符串 `p` 中的字符进行任意次数的重复,使得字符串 `p` 成为字符串 `s` 的子串。如果可以实现,则返回 `true`;否则,返回 `false`。 **示例 1**: ``` 输入: s = "abab", p = "ab" 输出: true 解释: 可以通过重复 "ab" 来得到 "abab"。 ``` **示例 2**: ``` 输入: s = "abab", p = "abab" 输出: true 解释: 字符串 "abab" 已经与自身相同,因此无需重复。 ``` **示例 3**: ``` 输入: s = "leetcode", p = "etc" 输出: false 解释: 无论如何重复 "etc",都无法在 "leetcode" 中找到它作为子串。 ``` ### PHP 示例代码 ```php function repeatedStringMatch($s, $p) { $lenS = strlen($s); $lenP = strlen($p); $repeated = ''; while (strlen($repeated) < $lenS + $lenP) { // 确保重复长度至少能覆盖s和p的长度和 $repeated .= $p; if (strpos($repeated, $s) !== false) { return true; } } return false; } // 测试示例 echo repeatedStringMatch("abab", "ab") ? "true" : "false"; // 输出 true echo repeatedStringMatch("abab", "abab") ? "true" : "false"; // 输出 true echo repeatedStringMatch("leetcode", "etc") ? "true" : "false"; // 输出 false ``` ### Python 示例代码 ```python def repeatedStringMatch(s: str, p: str) -> bool: repeated = '' while len(repeated) < len(s) + len(p): repeated += p if p in repeated: return True return False # 测试示例 print(repeatedStringMatch("abab", "ab")) # 输出 True print(repeatedStringMatch("abab", "abab")) # 输出 True print(repeatedStringMatch("leetcode", "etc")) # 输出 False ``` ### JavaScript 示例代码 ```javascript function repeatedStringMatch(s, p) { let repeated = ''; while (repeated.length < s.length + p.length) { repeated += p; if (repeated.includes(s)) { return true; } } return false; } // 测试示例 console.log(repeatedStringMatch("abab", "ab")); // 输出 true console.log(repeatedStringMatch("abab", "abab")); // 输出 true console.log(repeatedStringMatch("leetcode", "etc")); // 输出 false ``` **码小课网站中有更多相关内容分享给大家学习**,包括但不限于算法基础、数据结构、编程语言进阶等,欢迎访问码小课网站深入学习。
推荐面试题