1961. Check If String Is a Prefix of Array

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.

1961. Check If String Is a Prefix of Array
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);
}