当前位置: 代码迷 >> 综合 >> 2021秋季《数据结构》_EOJ 1037.字符串消除
  详细解决方案

2021秋季《数据结构》_EOJ 1037.字符串消除

热度:59   发布时间:2023-12-10 19:49:37.0

题目

在这里插入图片描述

思路

暴力遍历

代码

#include<bits/stdc++.h>
using namespace std;char a[3] = {
    'A', 'B', 'C'};int flag = 0;
string eraseString(string s)
{
    // cout<<s<<endl;int len = s.length();int i = 0;string tmp = "";while (i<len){
    char nowCh = s[i];int j = i+1;for(; j<len && s[j]==nowCh; j++);if(j==i+1) // 该字符并非重复字符{
    tmp += nowCh;i = j;}else  // 该字符是重复字符{
    flag = 1;  // 找到重复字符i = j;}}if(tmp.length()==s.length()) return tmp;return eraseString(tmp);}int main()
{
    int t; cin>>t;for(int i = 0 ; i < t; i++){
    string s; cin>>s;int len = s.length();int minLen = len;cout<<"case #"<<i<<':'<<endl;for(int pos = 0; pos <= len; pos++)// 遍历每一个位置{
    for(int cpos = 0; cpos < 3; cpos++)// 遍历ABC{
    string tmpS = s;char ch = a[cpos];// 插入A/B/Cif(pos!=len)tmpS.insert(pos, 1, ch);elsetmpS += ch;string res = eraseString(tmpS);if(res.length()<minLen) minLen = res.length();}}cout<<len+1-minLen<<endl;}system("pause");return 0;
}
  相关解决方案