1.如果您曾经尝试在 Macintosh 上阅读 html 文档,您就知道如果没有安装网 景,那是多么困难。

现在,谁能忘记安装 HTML 浏览器呢?这很简单,因为大多数时候你在 MAC 电脑上不需要一个,因为有一个以 MAC 为母语的杂耍阅读器,但是如果你需要一 个,你会怎么做?

您的任务是编写一个小型的 html 浏览器。它只需要显示输入文件的内容,只 知道 html 命令(标记)< br >,这是一个 linebreak 和< hr >,它是一个水平标 尺。然后,您应该将所有制表符、空格和换行符视为一个空格,并在一行中显示 不超过 80 个字符的结果文本。

输入

输入由应该显示的文本组成。该文本由一个或多个空格、制表符或换行符分 隔的单词和 HTML 标记组成。 单词是字母、数字和标点符号的序列。例如,“abc,123”是一个词,但是 “abc,123”是两个单词,即“abc”和“123”。一个单词总是少于 81 个字符, 并且不包含任何' < '或' > '。所有 HTML 标签都是< br >或< hr >。

输出

您应该使用以下规则显示所产生的文本: 如果你在输入中读了一个字,结果线的长度不会超过 80 个字符,打印出来, 然后在新的一行上打印出来。 如果您在输入中读取< br >,那么就开始一个新行。 如果您在输入中读取< hr >,那么就开始一条新行,除非您已经在一行的开 头,显示 80 个字符“-”并开始一个新行(再次)。 最后一行以换行符结束。(编写一个浏览器输入输出------对应杭电 oj 第 1088 题)

(题目是以上这些,因为看不太懂题目,就把hduoj1088的输入输出的样例搬过来了)

Sample Input

Hallo, dies ist eine

ziemlich lange Zeile, die in Html

aber nicht umgebrochen wird.

<br>

Zwei <br> <br> produzieren zwei Newlines.

Es gibt auch noch das tag <hr> was einen Trenner darstellt.

Zwei <hr> <hr> produzieren zwei Horizontal Rulers.

Achtung              mehrere Leerzeichen irritieren

Html genauso wenig wie

mehrere Leerzeilen.

Sample Output

Hallo, dies ist eine ziemlich lange Zeile, die in Html aber nicht umgebrochen

wird.

Zwei

produzieren zwei Newlines. Es gibt auch noch das tag

--------------------------------------------------------------------------------

was einen Trenner darstellt. Zwei

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

produzieren zwei Horizontal Rulers. Achtung mehrere Leerzeichen irritieren Html

genauso wenig wie mehrere Leerzeilen.

#include<stdio.h>
#include<string.h>
char c[1000];
int i,n,l;
void main()
{n=0;while(scanf("%s",&c)!=EOF){l=strlen(c);if(!strcmp(c,"<br>")){printf("\n");n=0;}else if(!strcmp(c,"<hr>")){if(n!=0)printf("\n");printf("--------------------------------------------------------------------------------\n");n=0;}else{if(n+l<80){if(n!=0){printf(" ");n++;}printf("%s",c);n+=l;}else{printf("\n");n=l;printf("%s",c);}}memset(c,'\0',sizeof(c));}printf("\n");
}

看来例子以后,总结出来要遵守的规则大概如下:

1.遇到<br>要换行。

2.遇到<hr>不但要换行,还要输出80个‘-’,并换行。

3.一行的字符超过80个以后也要换行。(如果一个单词输出以后本行多于80个字符,那该单词也要到下一行输出)

4.多个空格只能输出一个空格

一开始我用的gets(),后来因为空格处理太麻烦,看来讨论区发现有个大神用的scanf,直接忽略空格,会比gets方便很多。

注意一篇文本输入输出完毕以后,还要有个换行。

2.给定一个仅包含“a”-“Z”的字符串,我们可以使用以下方法对其进行编码:

1.每个包含 k 个字符的子字符串应该被编码到“kX”,其中“X”是这个子字符串中唯一的字符。

2.如果子字符串的长度为 1,则“1”应被忽略。 输入 第一行包含一个整数 N(1 <= N <= 100),表示测试用例的数量。下一个 N 行 包含 N 个字符串。每个字符串只包含“A”-“Z”,长度小于 10000。 输出 对于每个测试用例,将编码的字符串输出到一行中。 (对应hduoj1020题)

Sample Input

2

ABC

ABBCCC

Sample Output

ABC

A2B3C

#include<stdio.h>
#include<string.h>
char c[100000];
int i,n,l,num;
void main()
{while(scanf("%d",&n)!=EOF){while(n--){scanf("%s",&c);getchar();l=strlen(c);char s=c[0];num=1;for(i=1;i<l;i++){if(s==c[i])num++;else{if(num!=1)printf("%d%c",num,s);elseprintf("%c",s);num=1;s=c[i];}}if(num!=1)printf("%d%c\n",num,s);elseprintf("%c\n",s);memset(c,'\0',sizeof(c));}}
}

奇怪的很,一开始我用gets就超时,用scanf就不超时了。

3.12 杭电复试题2014相关推荐

  1. 3.12 杭电复试题2013

    1.简要描述:输入一个数,代表要检测的例子的个数,每个例子中:输入两 个时间(格式 HH:MM:SS),前面时间减去后面时间输出在时钟上显示的时间,格 式一样,如果是以为数字的前面补零. #inclu ...

  2. 3.7 杭电复试题2011

    1.输入三个正整数 A.B.C,判断这三个数能不能构成一个三角形. #include<stdio.h> int i,a,b,c; void swap(int *m,int *n) {int ...

  3. 3.5 杭电复试题2007

    1."回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon" 等等就是回文串.请写一个程序判断读入的字符串是否是&quo ...

  4. 3.10 杭电复试题2012

    1.写一程序将十进制数转变为十六进制数输出.每行输入一个十进制数,当输入数位0时,输出结束. #include<stdio.h> #include<string.h> int ...

  5. 3.6 杭电复试题2010

    1.猜数字游戏   题目:随即产生一个 3 位的正整数,让你进行猜数字,如果猜小了,输出: "猜小了,请继续". 如果猜大了,输出:"猜大了,请继续".如果猜对 ...

  6. 3.6 杭电复试题2009

    1.输入两个整数,求出最大公约数. #include<stdio.h> int i,res,a,b; void swap(int *m,int *n) {int temp;temp=*m; ...

  7. 3.5 杭电复试题 2006

    1.输入一个十进制的数,把它变成八进制,类似的把十进制变成 16 进制, 把十六进制转变为十进制等. #include<stdio.h> #include<math.h> in ...

  8. 2014广东计算机一级试题及答案,广东计算机一级试题2014版

    2014最新,结合历年真题.模拟题,浏览量达1万哦 广东省计算机一级考试试题 2014最新,结合历年真题.模拟题 2013-04-18 18:59:47| 分类: 学习 | 标签: |字号大中小 订阅 ...

  9. C++描述杭电OJ 2014. 青年歌手大奖赛_评委会打分 ||

    C++描述杭电OJ 2014. 青年歌手大奖赛_评委会打分 || Problem Description 青年歌手大奖赛中,评委会给参赛选手打分.选手得分规则为去掉一个最高分和一个最低分,然后计算平均 ...

最新文章

  1. BZOJ 2535:NOI 2010 航空管制
  2. 互联网大厂高频重点面试题
  3. 启动延时缩短 50%-80%,函数计算发布镜像加速功能
  4. 前端后台与接口的问题
  5. 《REINFORCEMENT LEARNING (DQN) TUTORIAL》的学习笔记
  6. Ubuntu 安装 CLI 并运行 ASP.NET Core 1.0
  7. 一种免费下载专利的方法
  8. Eye Tracking Methodology Theory and Practice, Third Edition
  9. ArcScene:构建三维地图
  10. 我的世界(15)-删除服务器地图区块(MCedit)
  11. 已解决-电脑端HP Scan扫描无反应无法扫描
  12. 详析:谷歌为何紧急封杀阿里云OS?
  13. 日本护照持有者可以免签进入全球193个目的地,创下历史记录
  14. Java建立长链接的方式_java http长链接(keep-alive)导致的问题
  15. Java SE基础(更新中)
  16. 外贸客户已读不回怎么办?看了这篇文章就明白了!
  17. 模仿淘宝电脑端购物车页面
  18. 父虚拟磁盘在子虚拟磁盘创建之后被修改过。父虚拟磁盘的内容ID与子虚拟磁盘中对应的父内容ID不匹配
  19. 通信基站防雷接地方案
  20. 竞赛无人机搭积木式编程——以2022年TI电赛送货无人机一等奖复现为例学习(7月B题)

热门文章

  1. 菜鸟教程:Python练习实例1~10
  2. IBM实习日记——6.16-6.18
  3. 单例模式的五种实现形式(懒汉式,饿汉式,双空判断,内部类,枚举)
  4. LaTeX命令速查手册 - 方法总比问题多
  5. txt文件更改成java文件
  6. 单链表、循环链表、双向循环链表总结
  7. 数美科技风控前沿| AIGC需要什么内容风控基建?ChatGPT本“人”有话要说
  8. bat(batch)
  9. cdma特有效应_CDMA原理部分考试题(含答案).doc
  10. linux scsi相关的一些学习笔记