通过递归删除 C++ 中的给定子字符串来检查字符串是否可以变空

假设我们有两个字符串,str1 和 str2。str2是str1的子串,我们可以从str1中删除str2。字符串 str2 有可能在 str1 中出现多次。我们的目标是找出如果我们多次从 str1 中删除 str2 ,则 str1 是否变为空字符串。如果可能,我们返回 1,否则返回 0。

所以,如果输入像 str1 = "CCCPPPPPPP", str2 = "CPP"; 那么输出将为真。

示例 (C++)

让我们看看以下实现以获得更好的理解 -

#include<bits/stdc++.h>

using namespace std;

bool solve(string str1, string str2) {

   while (str1.size() > 0) {

      int index = str1.find(str2);

      if (index == -1)

      break;

      str1.erase(index, str2.size());

   }

   return (str1.size() == 0);

}

int main() {

   string str1 = "CCCPPPPPP", str2 = "CPP";

   cout<<solve(str1, str2)<<endl;

   return 0;

}

输入

"CCCPPPPPP", "CPP"
输出结果
1

以上是 通过递归删除 C++ 中的给定子字符串来检查字符串是否可以变空 的全部内容, 来源链接: utcz.com/z/360694.html

回到顶部