1. 题目
给你一个字符串
s
和一个字符串数组words
,请你判断s
是否为words
的 前缀字符串 。字符串
s
要成为words
的 前缀字符串 ,需要满足:s
可以由words
中的前k
(k
为 正数 )个字符串按顺序相连得到,且k
不超过words.length
。如果
s
是words
的 前缀字符串 ,返回true
;否则,返回false
。
2. 示例
3. 分析
法一:直接拼接数组的每个字符串比较是否与 s 相等:
class Solution {
public:bool isPrefixString(string s, vector<string>& words) { string str;for(int i = 0; i < words.size(); i++){for(int j = 0; j < words[i].size(); j++){str += words[i][j];} if(str == s) return true; }return false;}
};
法二:逐个字符比较是否相等即可,若有一个不同则false:
class Solution {
public:bool isPrefixString(string s, vector<string>& words) { int pos = 0, n = s.size();for(int i = 0; i < words.size(); i++){for(int j = 0; j < words[i].size(); j++){if(pos < n && words[i][j] == s[pos]) pos++;else return false; }if(pos == n) return true;}return false;}
};