LeetCode 2825. Make String a Subsequence Using Cyclic Increments

69 阅读1分钟

🔗 leetcode.com/problems/ma…

题目

  • 给定两个字符串 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; 
    }
};