Formatted question description: https://leetcode.ca/all/1961.html

1961. Check If String Is a Prefix of Array

Level

Easy

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.

Solution

Loop over s and words. If the characters do not match, return false. If s finishes but the last character of s is not the last character of any of the word in words, return false. If s finishes at the last character of any of the word in words, return true.

class Solution {
    public boolean isPrefixString(String s, String[] words) {
        int length = s.length();
        int arrLength = words.length;
        int index = 0;
        for (int i = 0; i < arrLength && index < length; i++) {
            String word = words[i];
            int wordLength = word.length();
            int j = 0;
            while (j < wordLength && index < length) {
                if (s.charAt(index) == word.charAt(j)) {
                    index++;
                    j++;
                } else
                    return false;
            }
            if (index == length && j < wordLength)
                return false;
        }
        return index == length;
    }
}

All Problems

All Solutions