左旋转字符串
来源:互联网 发布:php商城分销系统源码 编辑:程序博客网 时间:2024/04/30 15:49
朴素算法
#include <stdio.h>
#include <stdlib.h>//左旋转字符串
void trans(char a[],int n,int k)
{
k%=n;
int i,j;
char t;
for(i=0;i<k;i++)
{
t=a[n-1];
for(j=n-1;j>0;j--) a[j]=a[j-1];
a[j]=t;
}
}
int main()
{
char a[10]="abcdefg";
int n;
//printf("%s\n",a);
while(scanf("%d",&n))
{
trans(a,7,n);
printf("%s\n",a);
}
return 0;
}
二、翻转算法
#include <stdio.h>
#include <stdlib.h>
//左旋转字符串
void Con(char*a,int n)//翻转一个长度为n的字符串
{
int i,j;
char t;
for(i=0,j=n-1;i<j;i++,j--)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
void Shift(char*a,int n,int k)
{
Con(a,n-k);
printf("%s\n",a);
Con(a+n-k,k);
printf("%s\n",a);
Con(a,n);
}
int main()
{
char a[10]="abcdefg";
int n;
//printf("%s\n",a);
while(scanf("%d",&n))
{
Shift(a,7,n);
//Con(a,7);
printf("%s\n",a);
}
return 0;
}
观察到 第二次开始就出错了。其实没有错 是因为字符串一直在变。
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 26.左旋转字符串
- 第一章、左旋转字符串
- 字符串的左旋转
- 第一章、左旋转字符串
- 第一章、左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 26、左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 左旋转字符串
- 新人励志之路
- acmclub 2605 LED显示屏
- GetCurrentDirectory()
- Python邮箱客户端编写之接收邮件操作
- POJ 2349 Arctic Network (MST中的第K长路)
- 左旋转字符串
- Java生产者消费者例子
- boost库在工作(37)网络UDP服务端之七
- ubuntu 命令行修复图形界面
- 怎样自己写一个简单的操作系统
- jQuery中(function(){})()执行顺序的理解-
- [leetcode刷题系列]Search in Rotated Sorted Array II
- 国外的机器视觉课程及资料
- Android activity 笔记