• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >数据结构 > UVa1584 环状序列 (Circular Sequence)

UVa1584 环状序列 (Circular Sequence)

作者:Unyielding will 字体:[增加 减小] 来源:互联网 时间:2017-08-17

Unyielding will通过本文主要向大家介绍了uva1584,环状rna,环状肉芽肿,离心性环状红斑,环状软骨等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

环状序列

     长度为n的环状串有n种表示方法,分别为从某个位置开始顺时针得到,在这些排列中字典顺序最小的称“最小表示”。

     如CTCC的最小表示为CCCT,CGAGTCAGCT的最小表示为AGCTCGAGTC。

     提示:对于两个字符串,从第一的字符开始比较,当某一个位置的字符不同时,该位置字符较小的串,字典序小,如果一个字符串没有更多的字符,        但是另一个字符串还没结束,则较短的字符串的字典序较小。

 

   实现:

#include<stdio.h>
#include<string.h>
#define MAX 101
int less(char *s, int p, int q)// 比较两个 序列的字典序
	{
		int n = strlen(s);
		for(int i = 0; i < n; i++ ){
			if(s[(p+i)%n] != s[(q+i)%n])//意味着元素相同时候继续 直到有不同的元素为止
				return s[(p+i)%n] < s[(q+i)%n];//不同时直接返回 大小关系
			}
			
		return 0;//到这一步 说明这两个序列 元素一样
	} 
	
int main()
	{
		char s[MAX];
		scanf("%s",&s);
		int n = strlen(s);
		int ans = 0;
		
		for(int i = 1; i < n; i++ ){
			if(less(s, i, ans) == 1)
				ans = i;//如果 以第i个位置开始的序列的 字典序 小于从ans位置开始的字典序
		}                       //那么 更新 ans 位置为 i
		
		for(int i = 0; i < n; i++ ){
			printf("%c",s[(ans+i)%n]);  //  (ans+n-1)%n <-> ans-1(ans前一个) || n-1(ans = 0时) 
		}
				
		return 0;
	}
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • UVa1584 环状序列 (Circular Sequence)

相关文章

  • 2017-06-28数据结构教程 第二十八课 图的存储结构
  • 2017-06-28java排序算法
  • 2017-06-28数据结构教程 第十九课 实验四 串的实现实验
  • 2017-06-28九宫问题(八数码)求解过程动态演示
  • 2017-06-28数据结构教程
  • 2017-06-28A*寻路初探
  • 2017-06-28数据结构教程 第三十六课 选择排序、归并排序
  • 2017-08-17UVa1584 环状序列 (Circular Sequence)
  • 2017-06-28数据结构教程 第二十六课 图的定义与术语
  • 2017-06-28VFP中实现选择排序

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • RSA算法的实现(java版)
    • 数据结构教程 第七课 实验一 线性表的顺序存储实验
    • 数据结构C语言实现之二叉树
    • 模拟退火算法求解TSP问题
    • 数据结构教程 第六课 线性表的顺序表示和实现
    • 数据结构教程 第三十九课 索引文件
    • java排序算法
    • 链表的建立、插入和删除
    • 水仙花数的vfp实现
    • 数据结构教程 第三十七课 实验八 排序实验

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有