题目
- 给定两个字符串 str1 和 str2,由英文小写字母组成
- str1 可以进行一次操作,对一些下标字符移位处理,a → b, b→c, z → a
- 判断 str2 是否可能为 str1 经过操作之后的子字符串
思路
- 判断str2 是否为 str1 的子字符串,在字符匹配判断的时候,除了两个字母相等,可以进行 +1 操作
代码
class Solution {
public:
bool canMakeSubsequence(string str1, string str2) {
int len1 = str1.size(), len2 = str2.size();
int j = 0;
for (int i = 0; i < len1; i++) {
if (str1[i] == str2[j] || (str1[i] == 'z' && str2[j] == 'a')) j++;
else if ((str1[i] + 1) == str2[j]) j++;
if (j == len2) return true;
}
return false;
}
};