poj1146

poj1146题目链接:http://poj.org/problem?id=1146题目大意:求一个字符串的后继字符串,即对一个字符串进行字典序排列的后一个!方法:对字符串进行从后向前进行遍历,如果直到找到后面的最大的非递增序列,然后在这个序列中找到比其前面大的最小的一个字母和其交换,再对交换后的后面的部分进行字典序排列再次进行输出即可以拉!#include#includeusingnam

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

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

题目大意:求一个字符串的后继字符串,即对一个字符串进行字典序排列的后一个!

方法:对字符串进行从后向前进行遍历,如果直到找到后面的最大的非递增序列,然后在这个序列中找到比其前面大的最小的一个字母和其交换,再对交换后的后面的部分进行字典序排列再次进行输出即可以拉!

#include<iostream>
#include<string>
using namespace std;
int cmp(const void *a,const void *b)
{
	return *(char *)a-*(char *)b;
}
int main()
{
	char s[60];
	int i,j,sign,len;
	while(1)
	{
		gets(s);
		sign=0;
		len=strlen(s);
		if(len==1 && s[0]=='#')
			break;
		for(i=len-1; i>=1; i--)
			if(s[i-1]<s[i])
			{
				sign=1;
				break;
			}
		if(sign==0)
			printf("No Successor\n");
		else
		{ 
			char ma=120;
			int k;
			for(j=i; j<len; j++)
				if(s[j]<ma && s[j]>s[i-1])
				{
					ma=s[j];
					k=j;
				}
			char m=s[i-1];
			s[i-1]=s[k];
			s[k]=m;
			qsort(&s[i],len-i,sizeof(char),cmp);
			for(j=0; j<len; j++)
				printf("%c",s[j]);
             printf("\n");
		}
	}
	return 0;
}

 

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

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

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

相关推荐

  • Linux stat函数_c++ stringbuffer

    Linux stat函数_c++ stringbuffer之前写过一篇关于stat命令的博客,介绍了stat命令的使用和输出信息表示,今天又见到了stat函数,因为输出原因,准备整理一下。stat函数介绍  根据《UNIX环境高级编程》中对于stat函数的解释,stat函数和stat命令一样,都是返回该文件的详细信息。函数定义为:#include&lt;sys/types.h&gt;#include&lt…

    2022年8月21日
  • 股票 数据接口(股票行情数据接口)

    最近股票大跌,打算做点数据分析。转个数据接口,等我完成数据分析有具体结论再写出来吧。做了一点股票分析数据准备,做了个均线图:http://stock.chenpeng.info/randomone查询股票走势请移步:http://stock.chenpeng.info/,搜索请输入代码或者股票名称。Sina股票数据接口eg:http://hq.sinajs.cn/li…

    2022年4月14日
  • 什么是GMM算法_bs模型公式

    什么是GMM算法_bs模型公式1.高斯模型与高维高斯模型介绍高斯模型也就是正态分布模型,该模型最早可见于我们的高中数学教材中。闻其名知其意,正态分布是自然界中普遍存在的一种分布。比如,考试成绩,人的智力水平等等。都是大致呈现为正态分布。其概率密度函数为其中参数为μ,σ2,都是一维标量。对于高维高斯模型,与一维类似,只是自变量变成了多维,是一个向量。其概率密度函数为其中参数为μ…

    2022年11月2日
  • 【教程】详解VS2010安装流程[通俗易懂]

    【教程】详解VS2010安装流程  原文网址链接为:http://jingyan.baidu.com/article/4e5b3e195b838991901e24e5.html  VS2010全称“Microsoft Visual Studio 2010”,是微软公司推出的开发环境。也是目前流行的Windows平台应用程序开发环境。注意:在第6步安装时,产品安装路径可以选择

    2022年4月16日
  • js闭包循环遍历监听_Js闭包

    js闭包循环遍历监听_Js闭包JavaScript闭包之for循环

    2022年4月21日
  • CausalDiscoveryToolbox:因果建模、因果图代码实现

    CausalDiscoveryToolbox:因果建模、因果图代码实现Cdt工具包实现了端到端的因果建模方法,支持从观测数据中恢复直接依赖关系(因果图的骨架)和变量之间的因果关系。基于python实现了许多用于图结构恢复的算法,接口简单,易于上手。

    2022年8月14日

发表回复

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

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