Given a string s
and an array of strings words
, determine whether s
is a prefix string of words
.
A string s
is a prefix string of words
if s
can be made by concatenating the first k
strings in words
for some positive k
no larger than words.length
.
Return true
if s
is a prefix string of words
, or false
otherwise.
Example 1:
Input: s = "iloveleetcode", words = ["i","love","leetcode","apples"] Output: true Explanation: s can be made by concatenating "i", "love", and "leetcode" together.
Example 2:
Input: s = "iloveleetcode", words = ["apples","i","love","leetcode"] Output: false Explanation: It is impossible to make s using a prefix of arr.
Constraints:
1 <= words.length <= 100
1 <= words[i].length <= 20
1 <= s.length <= 1000
words[i]
and s
consist of only lowercase English letters.struct Solution;
impl Solution {
fn is_prefix_string(s: String, words: Vec<String>) -> bool {
let mut t = "".to_string();
for w in words {
t.push_str(&w);
if t == s {
return true;
}
}
false
}
}
#[test]
fn test() {
let s = "iloveleetcode".to_string();
let words = vec_string!["i", "love", "leetcode", "apples"];
let res = true;
assert_eq!(Solution::is_prefix_string(s, words), res);
let s = "iloveleetcode".to_string();
let words = vec_string!["apples", "i", "love", "leetcode"];
let res = false;
assert_eq!(Solution::is_prefix_string(s, words), res);
}