PTA 7-2 动态规划

题目描述
给定一一个字符串,请你将其分成三段,并将每一段倒序后按照分段的顺序输出。 由于方案有多种,请输出答案字典序最小的那一种。
输入格式
输入一行为一个字符串,表示待分段的串。
输出格式
输出一行为一个字符串,表示答案串,需要保证字典序最小。
输入输出样例
输入 1 dcbagfekjib 输出 1 abedefghijk
输入 2 anaconda 输出 2 aanadnoc

#include 
#include 
#include 
using namespace std;
int main(){
    int i=0;
    string a;
    while(cin>>a)
    {
     getchar();
     if(cin.get()=='\n')
     break;
   }
    int n=a.length();
    char min[3];
    min[0]=a[0];
    int flag[3]={0},m=0,h=0;
    for(int i=0;i-1;i++){
        if(min[0]>a[i]){
            min[0]=a[i];
            flag[0]=i;
            m=i+1;
        }
    }
    min[1]=a[m];
    for(int i=m+1;i-1;i++){
        if(min[1]>a[i]){
            min[1]=a[i];
            flag[1]=i;
            h=i+1;
        }
    }
    min[2]=a[h];
    for(int i=h+1;i<=n;i++){
        if(min[2]>a[i]){
            min[2]=a[i];
            flag[2]=i-1;
        }
    }
    for(int i=flag[0];i>=0;i--){
        cout<1];i>flag[0];i--){
        cout<2];i>flag[1];i--){
        cout<0;
}

先寻找最小的字典序字符,将其之前的字符串包括本身划为第一个字符串,从原始字符串中分离。以此类推,分出第二个字符串,第三个字符串。如果存在多个最小字典序字符,则选择第一个最小字典序字符。
可以通过样例1,但不能通过样例2
希望得到正确代码

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。