题目描述补充
题目:重复字符串匹配
给定两个字符串 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 示例代码
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 示例代码
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 示例代码
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
码小课网站中有更多相关内容分享给大家学习,包括但不限于算法基础、数据结构、编程语言进阶等,欢迎访问码小课网站深入学习。