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


相关推荐

  • matlab中clc和clear作用_clc,clear

    matlab中clc和clear作用_clc,clearcacl()用法解析可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。以前我们可以使用box-sizing:border-box;来设置盒子的属性为不加上边距。现在我们又多了一个选择了。但要注意,两者只能使用一个哦,否则就会造成冲突了。calc()可以使用数学运算中的简单加(+)、减(-)、乘(*)和除(/)来解决问题,而且还可以根据单位如px,em,rem和百分比来转化计算,但是要注意,使用运算符号的时候要与两边的值有空格和间隙,否

    2025年7月23日
    3
  • 填充墙一般用什么材料_opencv填充封闭区域

    填充墙一般用什么材料_opencv填充封闭区域目录一、须知二、演示过程代码展示主函数展示原图运行结果三、总结一、须知本文章所提供代码不是自创,由于时间太久实在找不到来源,发布出来只为给大家提供便利,完全免费。话不多说,不想看文章的直接点击下载链接即可:点我.二、演示过程代码展示Matcop二值图intn填充比n小的孔洞函数默认为4连通如想改为8连通自行修改代码即可。#include”imfill.h”Matimfill(Matcop,intn){ Matdata=~cop; Matlabels,

    2025年11月3日
    3
  • android加密设备,用于Android手机的加密设备和加密外部SD卡

    android加密设备,用于Android手机的加密设备和加密外部SD卡电话被盗或丢失后,隐私将被泄露.Android手机具有“加密设备”和“加密外部SD卡”功能.那么这两个功能有什么区别?加密设备加密设备后,内置SD卡上的所有数据将被加密.此部分主要用于保护和SMS的隐私.加密设备后,即使将设备重置为出厂设置也无法解密数据.加密的外部SD卡加密外部SD卡可以保护SD卡上的所有数据.这部分数据主要用于保护用户的某些图片和私人文件,并防止照片.如果未解密加…

    2022年5月16日
    45
  • media type的类型汇总

    media type的类型汇总用的比较多的是screen和print:区分打印和屏幕显示(Android,iPhone都不是手持设备handheld,都是screen设备)转载于:https://www.cnblogs.com/hulaoxi/p/6140054.html

    2022年5月25日
    85
  • CentOS7 部署 RAID 磁盘阵列

    CentOS7 部署 RAID 磁盘阵列RAID(RedundantArrayoflndependentDisk独立冗余磁盘阵列)就是把多块独立的物理磁盘按不同的方式组合起来形成一个磁盘组(逻辑硬盘)。从而提供比单个磁盘更高的存储性能和提供数据备份技术。

    2022年5月1日
    175
  • java中static的用法[通俗易懂]

    java中static的用法[通俗易懂]java中static的用法

    2022年7月9日
    22

发表回复

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

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