Azathoth079693 2022-11-21 22:21 采纳率: 0%
浏览 20
已结题

PTA 7-2 动态规划

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

#include <string>
#include <string.h>
#include <iostream>
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<n-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<n-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<<a[i];
    }
    for(int i=flag[1];i>flag[0];i--){
        cout<<a[i];
    }
    for(int i=flag[2];i>flag[1];i--){
        cout<<a[i];
    }
    return 0;
}

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

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2022-11-25 17:34
    关注

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


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

    评论

报告相同问题?

问题事件

  • 系统已结题 11月29日
  • 创建了问题 11月21日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题