poj 1146

poj 1146题目链接:http://poj.org/problem?id=1146此题求所给字符串按字典序的下一个由原串字母排列的串,题目不难,开始看错了,wrong一次#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(intargc,char**argv){…

大家好,又见面了,我是你们的朋友全栈君。

题目链接:http://poj.org/problem?id=1146

此题求所给字符串按字典序的下一个由原串字母排列的串,题目不难,开始看错了,wrong一次

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv) {

    char a[55],temp;
    int k,i,j,flag,t;
    while(scanf("%s",a)&&a[0]!='#')
    {
        flag=-1;
        k=strlen(a);
        t=k-1;
        for(i=k-2;i>=0;--i)
        {
            if(a[i]>=a[t])
            {
                t=i;
            }
            else
            {
                if(a[k-1]>a[i])
                {
                    flag=k-1;
                }
                else
                {
                    for(j=t;j<k;j++)
                    {
                        if(a[j]<=a[i])
                        {
                            flag=j-1;
                            break;
                        }
                    }
                }
                break;
            }
        }
        if(flag==-1)
        {
            printf("No Successor\n");
        }
        else
        {
            temp=a[i];
            a[i]=a[flag];
            a[flag]=temp;
            for(j=0;j<=i;j++)
            {
                printf("%c",a[j]);
            }
            for(j=k-1;j>=i+1;--j)
            {
                printf("%c",a[j]);
            }
            printf("\n");
        }
    }
    return (EXIT_SUCCESS);
}

 

代码:

转载于:https://www.cnblogs.com/fengyuehan/archive/2012/04/10/poj1146.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143080.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows Server 2012 域控服务器连接转换服务器实现office服务功能

    Windows Server 2012 域控服务器连接转换服务器实现office服务功能nbsp 由于需求点上需要接入 office 相关功能 所以学习了搭建 windowsserve 相关知识点 以下是从 0 到有的一个过程配置信息 WindowsServe 版本 windows server 2012 OfficeOnline 版本 OfficeOnline 一 需要 2 台 windowsserve 的虚拟机 镜像的话这边上

    2025年10月25日
    4
  • Linux route命令

    Linux route命令一、route命令route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机…

    2022年7月18日
    21
  • MySQL具体解释(19)———-海量数据分页查询优化

    MySQL具体解释(19)———-海量数据分页查询优化

    2022年1月27日
    49
  • python怎么定义数组长度_定义定长数组

    python怎么定义数组长度_定义定长数组广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!python返回数组(list)长度的方法array=printlen(array)…如何查找二维数组中有多少行和列?例如,input=(,,])`应显示为3行和2列…所以我在python中实现了一个块交换算法。我遵循的算法是这样的:初始化a=arr…

    2025年6月3日
    3
  • Flutter基础组件学习–仿写美呗官方小程序界面

    Flutter基础组件学习–仿写美呗官方小程序界面Flutter基础组件学习–仿写美呗官方小程序界面

    2022年4月21日
    98
  • 激活成功教程软件_奇()怪()

    激活成功教程软件_奇()怪()这是博主的私人网站,里面收录了很多激活成功教程软件,以及一些奇奇怪怪的网站,这个网站已经经过国家工信部备案了,里面的内容博主都测试过才收录进来的,可以放下访问http://www.resourcestation.xyz…

    2022年10月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号