算法提高 字符串跳步
时间限制:1.0s 内存限制:256.0MB
提交此题
问题描述
给定一个字符串,你需要从第start位开始每隔step位输出字符串对应位置上的字符。
输入格式
第一行一个只包含小写字母的字符串。
第二行两个非负整数start和step,意义见上。
输出格式
一行,表示对应输出。
样例输入
abcdefg
2 2
样例输出
ceg
数据规模和约定
start从0开始计数。
字符串长度不超过100000。
提示
读入上有问题,可以参照字符串进位。
尝试不要出现以下代码:for (int i = 0; i < (int) S.size(); ++i)
#include <stdio.h>
#include<string.h>
int main()
{
int start,step,i,l;
char a[100000];
scanf("%s",a);
scanf("%d%d",&start,&step);
l=strlen(a);
i=start;
while(i<l)
{
printf("%c",a[i]);
i+=step;
}
return 0;
}
思路分析:
①定义变量:小写字符串(一维数组),两个非负整数;
②输入字符串,非负整数;
③根据题意求出从第start位开始每隔step位输出字符串对应位置上的字符。
算法提高 淘淘的名单
时间限制:100ms 内存限制:8.0MB
提交此题
问题描述
by ZBY... :) 淘淘拿到了一份名单,他想对上面的名字进行处理,挑出一些特殊的名字,他请你来帮忙。
淘淘关注以下名字:
如果这个名字是“WYS”,他希望你的程序输出“KXZSMR”。
如果这个名字是“CQ”,他希望你的程序输出“CHAIQIANG”。
如果这个名字是“LC“,他希望你的程序输出“DRAGONNET”。
如果这个名字是“SYT”或“SSD”或“LSS”或“LYF”,他希望你的程序输出“STUDYFATHER”。
如果这个名字与上述任意名字都不相同,他希望你的程序输出“DENOMINATOR”。
输入格式
第一行有一个整数N,表示淘淘手中名单里的人数。
接下来N行,每行有一个字符串,即名单里的人名。
输出格式
输出N行,每行输出每个人名的判断结果。
#include<stdio.h>
#include<string.h>
int main()
{
int n;
char name[10];
scanf("%d",&n);
while(n--)
{
scanf("%s",name);
if(strcmp(name,"WYS")==0)
printf("KXZSMR\n");
else if(strcmp(name,"CQ")==0)
printf("CHAIQIANG\n");
else if(strcmp(name,"LC")==0)
printf("DRAGONNET\n");
else if(strcmp(name,"SYT")==0)
printf("STUDYFATHER\n");
else if(strcmp(name,"SSD")==0)
printf("STUDYFATHER\n");
else if(strcmp(name,"LSS")==0)
printf("STUDYFATHER\n");
else if(strcmp(name,"LYF")==0)
printf("STUDYFATHER\n");
else
printf("DENOMINATOR\n");
}
return 0;
}
思路分析:
①定义变量:一个整数,人名(一维数组);
②输入一个整数;
③while循环,输入人名,根据每个人名的判断结果;
④输出每个人名的判断结果。