1961. 检查字符串是否为数组前缀

题目

给你一个字符串 s 和一个字符串数组 words ,请你判断 s 是否为 words前缀字符串

字符串 s 要成为 words前缀字符串 ,需要满足:s 可以由 words 中的前 kk正数 )个字符串按顺序相连得到,且 k 不超过 words.length

如果 swords前缀字符串 ,返回 true ;否则,返回 false

示例1:

1
2
3
4
输入:s = "iloveleetcode", words = ["i","love","leetcode","apples"]
输出:true
解释:
s 可以由 "i"、"love" 和 "leetcode" 相连得到。

示例2:

1
2
3
4
输入:s = "iloveleetcode", words = ["apples","i","love","leetcode"]
输出:false
解释:
数组的前缀相连无法得到 s 。

提示:

  • 1 <= words.length <= 100
  • 1 <= words[i].length <= 20
  • 1 <= s.length <= 1000
  • words[i]s 仅由小写英文字母组成

解法

解法一:

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public boolean isPrefixString(String s, String[] words) {
StringBuilder sb = new StringBuilder();
for (String word : words) {
if (sb.length() == s.length()) {
return sb.toString().equals(s);
}

if (sb.length() < s.length()) {
sb.append(word);
}

if (sb.length() == s.length()) {
return sb.toString().equals(s);
}

if (sb.length() > s.length()) {
return false;
}
}
return false;
}
0%