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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Unity中的Shuriken粒子系统(5)

    Unity中的Shuriken粒子系统(5)设置速度在生命周期内改变(曲线的设置)1.VelocityoverLifetime通过ParticleSystem中的StartSpeed,只能设置粒子发射的起始速度,不能改变粒子发射过程中的速度;而VelocityoverLifetime能够改变粒子在运动过程中的速度。当把StartSpeed设为0(粒子初始速度为0),VelocityoverLifetime只设置X的值…

    2022年10月29日
  • dp3003打印机怎么清零_打印机接口叫什么

    dp3003打印机怎么清零_打印机接口叫什么有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印由 同一个字符 组成的序列。每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。示例 1:输入:s = “aaabbb”输出:2解释:首先打印 “aaa” 然后打印 “bbb”。示例 2:输入:s = “aba”输出:2解释:首先打印 “aaa” 然后在第二个位置打印 “b” 覆盖掉原来的字符 ‘a’。 提示:1 <= s.le

  • pytest的使用_java中方法的调用或使用的地方

    pytest的使用_java中方法的调用或使用的地方Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

  • anaconda python 版本对应关系

    anaconda python 版本对应关系本文更新于2019.11.18更新了今年的版本号 在表格中用括号备注了包含的python版本号Releasedate conda python2.7 python3.4 python3.5 python3.6 python3.7 python3.8 2015-02-25 3.4.3 …

  • swing 事件处理机制

    swing 事件处理机制

  • 灵动标签的使用方法 ecms通过运行sql获取须要的记录

    灵动标签的使用方法 ecms通过运行sql获取须要的记录

发表回复

您的电子邮箱地址不会被公开。

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