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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • opencv环境的搭建,并打开一个本地PC摄像头。

    opencv环境的搭建,并打开一个本地PC摄像头。

    2022年1月15日
    42
  • int什么数据类型_int16是什么数据类型

    int什么数据类型_int16是什么数据类型int16,int32,int64等类型的区别Int16意思是16位整数(16bitinteger),相当于short占2个字节。Int32意思是32位整数(32bitinteger),相当于int占4个字节。Int64意思是64位整数(64bitinterger),相当于longlong占8个字节。…

    2022年8月15日
    7
  • oninput onpropertychange「建议收藏」

    oninput 是 HTML5的标准事件,对于检测 textarea,input:text,input:password和input:search  oninput 事件在IE9以下版本不支持,是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生

    2022年4月8日
    49
  • ssh 命令连接

    ssh 命令连接Linuxssh命令详解SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP22端口),包括公共秘钥等交换等信息。ssh服务端由2部分组成:openssh(提供ssh服务)openssl(提供加密的程序)ssh的客户端可以用XSHELL,Securecrt,Moba…

    2022年6月24日
    29
  • python的lambda表达式详细讲解

    python的lambda表达式详细讲解前言:Lambda表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。缺点:只有一个运算式,不适用于复杂的计算。不够直观,难于理解,增加了维护成本python的lambda可以和java中的stream流一样,可以将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用接下来我们用代码来演示一下lambda(1)简单用法

    2022年10月17日
    3
  • 验证Hibernate二级缓存的存在[通俗易懂]

    验证Hibernate二级缓存的存在[通俗易懂]一、环境的搭建请参考EHcache环境的配置二、实体类(Student.java)packagecom.hibernate.beans;publicclassStudent{privateIntegerid;privateStringname;privateintage;privatedoublescore;publicStu

    2022年5月10日
    40

发表回复

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

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