how F
  • 板块灌水区
  • 楼主Lionel_Messi_10
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/28 21:46
  • 上次更新2024/12/29 10:39:01
查看原帖
how F
1376362
Lionel_Messi_10楼主2024/12/28 21:46

RTRT,赛事代码调了好久硬是没有把最后一个样例调出来:

#include<iostream>
#include<string>
#include<vector>
using namespace std;
bool solve(int K, const string&S, const string&T)
{
    int lenS = S.length();
    int lenT = T.length();
    if (abs(lenS - lenT) > K)return 0;
    int i = 0, j = 0;
    int dels = 0;
    while (i < lenS && j < lenT)
    {
        if (S[i] == T[j])
        {
            ++i;
            ++j;
        }
        else
        {
            if (K == 0)return 0;
            if (i < lenS - 1 && S[i + 1] == T[j])
            {
                ++i;
                --K;
            }
            else if (j < lenT - 1 && S[i] == T[j + 1])
            {
                ++j;
                --K;
            }
            else
            {
                ++dels;
                if (dels > K)return 0;
                if (i < lenS - 1 && S[i + 1] == T[j])
                {
                    ++i;
                }
                else
                {
                    ++j;
                }
                --K;
            }
        }
    }
    int op = K;
    while (i < lenS || j < lenT)
    {
        if (i < lenS)++i;
        if (j < lenT)++j;
        if (--op < 0)return 0;
    }
    return 1;
}
int main()
{
    int K;
    string S, T;
    cin >> K >> S >> T;
    cout << (solve(K, S, T) ? "Yes" : "No") << endl;
    return 0;
}
2024/12/28 21:46
加载中...