carloscn / structstudy

Leetcode daily trainning by using C/C++/RUST programming.
4 stars 1 forks source link

leetcode1961: Check If String Is a Prefix of Array #313

Open carloscn opened 1 year ago

carloscn commented 1 year ago

Description

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.

carloscn commented 1 year ago

Analysis

pub fn is_prefix_string(s: &str, words: Vec<&str>) -> bool
{
    if s.len() < 1 && words.len() < 1 {
        return false;
    }

    let temp_str:Vec<char> = words.into_iter()
                                  .fold( vec![], |mut c, x| {
                                        c.append(&mut x.chars().collect());
                                        c
                                   }
    );

    let s_str:Vec<char> = s.chars().collect();

    for i in 0..s_str.len() {
        if temp_str[i] != s_str[i] {
            return false;
        }
    }

    return true;
}
carloscn commented 1 year ago

Code

https://review.gerrithub.io/c/carloscn/structstudy/+/1167834 https://github.com/carloscn/structstudy/commit/30f0b5b2ebac78935eb0700b57d69b06f1f6d6c8