NYOJ字符串右移

字符串右移

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

描述
LZQ最近迷上了字符串,于是他有一个问题想考你,聪明的你一定知道答案。问题如下:给你一个字符串,让你对其进行向右移动K次,输出新的字符串。

输入
输入数据有多组,每组有一个字符串STR与一个数字K,表示对字符串STR向右移动K位。
输出
输出新的字符串STR1.
样例输入
abcd1234 4
sdfe123f 10
样例输出
1234abcd
3fsdfe12
来源

原创

#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
char str[10000];
int main()
{
	int l,k,i;
	while(scanf("%s %d",str,&k)!=EOF){
		l=strlen(str);
		k=l-k%l;
		for(i=k;i<l;++i)
			printf("%c",str[i]);
		for(i=0;i<k;++i)
			printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}        
时间: 2024-08-09 17:57:55

NYOJ字符串右移的相关文章

NYOJ 658 字符串右移

字符串右移 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 LZQ最近迷上了字符串,于是他有一个问题想考你,聪明的你一定知道答案.问题如下:给你一个字符串,让你对其进行向右移动K次,输出新的字符串. 输入 输入数据有多组,每组有一个字符串STR与一个数字K,表示对字符串STR向右移动K位. 输出 输出新的字符串STR1. 样例输入 abcd1234 4 sdfe123f 10 样例输出 1234abcd 3fsdfe12 AC码: #include<stdio.h>

2015福富福大笔试——实现字符串右移

前两天参加了福富在福大的宣讲会,并且参加了笔试,最后一道大题,这里讲一下当时我的解法,大概的题意是这个样子的,只能使用c的库,实现一个函数void MakeString(char *pStr,int n)(ps:这里的函数名是我现在取的,想不起来考题给的是什么了),函数要求是以'\0'结尾的字符串pStr,一个需要右移的字符个数n,实现类似输入这样MakeString("abcdefghi",2),字符串右移后变成:hiabcdeg: 以下给出我当时的解法,希望各位看官有什么意见或者建

字符串右移

描述 LZQ最近迷上了字符串,于是他有一个问题想考你,聪明的你一定知道答案.问题如下:给你一个字符串,让你对其进行向右移动K次,输出新的字符串. 输入 输入数据有多组,每组有一个字符串STR与一个数字K,表示对字符串STR向右移动K位. 输出 输出新的字符串STR1. 样例输入 abcd1234 4 sdfe123f 10 样例输出 1234abcd 3fsdfe12 1 #include <stdio.h> 2 #include <string.h> 3 4 int main()

字符串右移N位题目

当初想了半天没想出来..(脑子太笨了....T.T) 回家仔细考虑了下. 实现如下: void move_string(char *msg, int steps) {   int len;   int pos;   int head;   char tmp;   int count;      if(msg == NULL)return;   len = strlen(msg);   steps = steps % len;   head = 0;   count = 0;   while(1)

转 字符串处理函数(不使用库函数实现)

////////////////////////////////////////////////////////////////////////////////////计算字符串的长度int strlen1(const char *str){ int len=0; while (*str++!='\0')  len++; return len; /*字符串长度较长时该方法比上面(自增两次)的效率要高 **const char *temp=str;//保存src的首地址 **while(*src+

python基础之数字、字符串、列表、元组、字典

第二天Python基础二: 1.运算符: 判断某个东西是否在某个东西里面包含: in  为真 not in  为假 (1).算术运算符: 运算符 描述 实例 + 加  表示两个对象相加 a + b输出结果30 - 减  表示一个数减去另一个数 a - b输出结果-10 * 乘  两个数相乘或是返回一个被重复若干次的字符串 a * b输出结果200 / 除  两个数相除 b / a 输出结果2 ** 幂  返回一个数的n次幂 3 ** 3 输出结果27 % 取余  返回除法的余数 b % a 输出

字符串操作_(不使用库函数)

原文链接:http://blog.chinaunix.net/uid-24103300-id-108254.html int strlen1(const char *str); char *del_char(char *str,char c);char *delete_string(char *str,int pos,int len);const char *strstr1(const char *src,const char *sub);char *strchr1( char *str, ch

易位构词EOJ3451【字符串】【思维题】【模拟】

http://acm.ecnu.edu.cn/problem/3451/ 官方题解: 我们可以先考虑字符串有序的情况,比如是 aaabcc,我们只要将字符串右移 3 位,变成 bccaaa,就做完了.那么对于无序的情况,我们可以通过排序让它有序,做完之后再排回去. 显然最多的字母出现次数大于一半的情况是不行的.否则就将每个字母的位置和字母绑定一下,按字母序对结构体进行排序.然后右移「出现最多的字母出现次数」位,再排回来就可以了. 当时没想到这是模拟,看题解不知道如果是无序的排完序后怎样弄回去..

由暴力匹配算法想到

暴力匹配是最基本最直接的匹配算法,从前到后逐一匹配,若失配,则字符串右移一格,重头再来. 用SAS实现就是: 1 %let text=abcdadbdftee; 2 %let find=ft; 3 data _null_; 4 a="&text"; 5 b="&find"; 6 len_a=length(a); 7 len_b=length(b); 8 i=1; 9 j=1; 10 do while (i<=len_a & j<=