Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2) D题解

2021/9/13 23:05:30

本文主要是介绍Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2) D题解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

传送门

题意

给定两个字符串\(a\)和\(b\),要求依次输入\(a\)中的字符,并进行以下两种操作:

  • 输入当前字符
  • 不输入当前字符,并删除前一个字符

使得最终输入的字符和\(b\)字符相等。

思路

由于当前的字符不被删除就一定会被选上,因此考虑从后往前遍历\(a\)字符,如果与\(b\)字符相等就选上,否则删除。

代码

int n;
string a, b;
 
int main()
{
    int T;
    cin >> T;
    while (T --  ) 
    {
        cin >> a >> b;
 
        if (a.size() < b.size()) puts("NO");
        else 
        {
            int i, j;
            for (i = a.size() - 1, j = b.size() - 1; i >= 0 && j >= 0; i -- ) 
            {
                if (a[i] == b[j]) j -- ;
                else i -- ;
            }
 
            if (j >= 0) puts("NO");
            else puts("YES");
        }
    }
    
    return 0;
}


这篇关于Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2) D题解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程