-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1961-CheckIfStringIsAPrefixOfArray.go
More file actions
71 lines (60 loc) · 2.52 KB
/
1961-CheckIfStringIsAPrefixOfArray.go
File metadata and controls
71 lines (60 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package main
// 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.
import "fmt"
func isPrefixString(s string, words []string) bool {
index, n := 0, len(s)
for _, word := range words {
for i := 0; i < len(word); i++ {
if index == n { return false }
if word[i] != s[index] { return false }
index++
}
if index == n { return true }
}
return false
}
func isPrefixString1(s string, words []string) bool {
concatenated := ""
for i := 0; i < len(words); i++ {
concatenated += words[i]
if concatenated == s { return true }
if len(concatenated) > len(s) { return false }
}
return false
}
func main() {
// Example 1:
// Input: s = "iloveleetcode", words = ["i","love","leetcode","apples"]
// Output: true
// Explanation:
// s can be made by concatenating "i", "love", and "leetcode" together.
fmt.Println(isPrefixString("iloveleetcode", []string{"i","love","leetcode","apples"})) // true
// Example 2:
// Input: s = "iloveleetcode", words = ["apples","i","love","leetcode"]
// Output: false
// Explanation:
// It is impossible to make s using a prefix of arr.
fmt.Println(isPrefixString("iloveleetcode", []string{"apples","i","love","leetcode"})) // false
fmt.Println(isPrefixString("iloveleetcode", []string{"i","love","leet","codeapples"})) // false
fmt.Println(isPrefixString1("iloveleetcode", []string{"i","love","leetcode","apples"})) // true
fmt.Println(isPrefixString1("iloveleetcode", []string{"apples","i","love","leetcode"})) // false
fmt.Println(isPrefixString1("iloveleetcode", []string{"i","love","leet","codeapples"})) // false
}