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;
}
};



















