杭电历年复试题目——2014年

申明:写本篇文章的目的是为了方便自己使用,以下代码纯属自己编写,因为没有评测系统,因此无法保证正确性,若有人看到错误,请指正,谢谢。

题目1:——杭电OJ1088
在这里插入图片描述在这里插入图片描述
大概意思就是:
1.如果输入了一个单词,并且加上这个单词(不是第一个单词还要在前面加上一个空格),行的长度不超过80个字符,请输出它,否则请输出到新行。
2.如果您在输入中读取了< br>,则开始一行。
3.如果您在输入中读取了< hr>,如果不是新开启的一行,就开始一个新行,然后显示80个字符的“-”,然后开始一个新行(再次)。
4.最后一行以换行符结尾。

#include<stdio.h>
#include<string.h>
char str[100];
int main()
{
	int cnt=0;
	while(scanf("%s",&str)!=EOF)
	{
		if(strcmp(str,"<br>")==0)
		{
			printf("\n");
			cnt=0;
		}
		else if(strcmp(str,"<hr>")==0)
		{
			if(cnt!=0)
				printf("\n");
			for(int i=0;i<80;i++)
				printf("-");
			printf("\n");
			cnt=0;
		}
		else
		{
			if(cnt+strlen(str)+1<=80)
			{
				if(cnt!=0)
				{
					printf(" ");
					cnt++;
				}
				printf("%s",str);
				cnt=cnt+strlen(str);
			}
			else
			{
				printf("\n%s",str);
				cnt=strlen(str);
			}
		}
	}
	printf("\n");
	return 0;
} 

题目2:——杭电OJ1020
给定一个仅包含“A”-“Z”的字符串,我们可以使用以下方法对其进行编码:
1。每个包含k个字符的子字符串应该被编码到“kX”,其中“X”是这个子字符串中唯一的字符。
2。如果子字符串的长度为1,则“1”应被忽略。
输入
第一行包含一个整数N(1 <= N <= 100),表示测试用例的数量。下一个N行包含N个字符串。每个字符串只包含“A”-“Z”,长度小于10000。
输出
对于每个测试用例,将编码的字符串输出到一行中

#include<stdio.h>
#include<string.h>
int main()
{
	int n;
	char s[10001];
	char temp;
	int cnt;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s",&s);
		temp=s[0];
		cnt=1;
		for(int i=1;i<strlen(s);i++)
		{
			if(s[i]==temp)
				cnt++;
			else{
				if(cnt!=1)
					printf("%d",cnt);
				printf("%c",temp);
				temp=s[i];
				cnt=1;
			}
		}
		if(cnt!=1)
			printf("%d",cnt);
		printf("%c\n",temp);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_37230495/article/details/88367621