NBUT 1117 Kotiya's Incantation(字符输入处理)

题意:比较两个串,有三种情况:完全相同,可见字符相同,不同。每个字符串以‘-‘结尾。难点在输入。

思路:字符逐个读入,直到‘-‘为止,读出两串就可以直接进行判断。如果不足两串则结束。输入时需要注意:输入第一个串时可能不足一个串,读到EOF要及时结束,别一直循环。

 1 //#include <bits/stdc++.h>
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <set>
 6
 7 using namespace std;
 8 const int N=1000000;
 9 char a[N], b[N];
10 char aa[N], bb[N];
11 const int ch=‘-‘;
12 int len2=0,len22=0,  len1=0,len11=0;        //输入1
13
14
15 void check()
16 {
17     if(len11 !=len22)//连可见字符都不一样多,肯定“不同”
18     {
19         printf("DIFFERENT\n");
20         return;
21     }
22
23     int i=0;
24     if(len1==len2 && strcmp(a,b)==0)  //长度相同才可能一样的
25     {
26         printf("SAME\n");
27         return ;
28     }
29     if(len11==len22 && strcmp(aa,bb)==0) //有可能相似
30     {
31         printf("SIMILAR\n");
32         return;
33     }
34     printf("DIFFERENT\n");
35 }
36
37 int main()
38 {
39     //freopen("input.txt", "r", stdin);
40     char c;
41     while(1)
42     {
43         len1=len11=0;
44         while((c=cin.get())!=ch)
45         {
46             if(c==-1)    return 0;    //EOF在这
47             a[len1++]=c;
48             if(c>=‘a‘&&c<=‘z‘||c>=‘A‘&&c<=‘Z‘)    aa[len11++]=c;
49         }
50         a[len1]= aa[len11]=‘\0‘;
51
52         len2=len22=0;
53         while((c=cin.get())!=ch )
54         {
55             b[len2++]=c;
56             if(c>=‘a‘&&c<=‘z‘||c>=‘A‘&&c<=‘Z‘)    bb[len22++]=c;
57         }
58         b[len2]=bb[len22]=‘\0‘;
59         check();
60     }
61     return 0;
62 }

AC代码

NBUT 1117 Kotiya's Incantation(字符输入处理)

时间: 2024-10-13 00:02:35

NBUT 1117 Kotiya's Incantation(字符输入处理)的相关文章

玲珑oj 1117 线段树+离线+离散化,laz大法

1117 - RE:从零开始的异世界生活 Time Limit:1s Memory Limit:256MByte Submissions:438Solved:68 DESCRIPTION 486到了异世界,看到了一群可爱的妹子比如蕾姆啊,艾米莉亚啊,拉姆啊,白鲸啊,怠惰啊等等!有一天膜女告诉486说她的能力可能不能再用了,因为膜女在思考一个数据结构题,没心情管486了.486说我来帮你做,膜女说你很棒棒哦! 给一个集合,最开始为空(不是数学上的集合)五个操作: 1.插入x2.把小于x的数变成x3

ustc 1117

无根树同构 有两种方法,一种是确定其中一棵树,另一棵树枚举根节点. 一种是,利用拓扑排序,先确定其中一棵树.另一棵树,若拓扑后剩两个节点,则枚举这两个节点为根结点,否则,只需做一次.注意,无根树节点入度应为1. 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 5 const int N=1005; 6 const int leaf_hash=2099; 7 const int pt=9323; 8

【C语言学习】《C Primer Plus》第8章 字符输入/输出和输入确认

学习总结 1.缓冲区分为完全缓冲区(fully buffered)I/O和行缓冲区(line-buffered)I/O.对完全缓冲输入来说,当缓冲区满的时候会被清空(缓冲区内容发送至其目的地).这类型的缓冲区通常出现在文件输入中.对于行缓冲I/O来说,遇到一个换行字符时将被清空缓冲区,键盘输入是标准的行缓冲区. 2.EOF是C对文件结尾的一个标识,在stdio.h头文件中定义,#define EOF (-1).在使用键盘输入时,可以通过Ctrl+D模拟EOF信号: #include <stdio

ACM: NBUT 1105 多连块拼图 - 水题 - 模拟

NBUT 1105  多连块拼图 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format: Practice Appoint description:  System Crawler  (Aug 12, 2016 9:32:14 AM) Description 多连块是指由多个等大正方形边与边连接而成的平面连通图形. -- 维基百科 给一个大多连块和小多连块,你的任务是判断大多连块是否可以由两个这样的小多连块拼成.小多连块只能

C库字符输入/输出函数

字符输入输出函数在头文件<stdio.h>里面 int fgetc(FILE* stream) fgetc函数返回stream流的下一个字符,返回类型为unsigned char(被转为int),到达文件的末尾或者发生错误,返回EOF. char* fgets(char* s,int n, FILE* stream) fgets函数最多将n-1个字符读入到数组s中.当遇到换行符时,把换行符读入到数组s中,读取过程终止.数组s以'\0'结尾.fgets函数返回数组s.到达文件末尾或发生错误,返回

题目1117:整数奇偶排序 (2008年北京大学图形实验室计算机研究生机试真题)

题目描述: 输入10个整数,彼此以空格分隔.重新排序以后输出(也按空格分隔),要求:1.先输出其中的奇数,并按从大到小排列:2.然后输出其中的偶数,并按从小到大排列. 输入: 任意排序的10个整数(0-100),彼此以空格分隔. 输出: 可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔. 样例输入: 4 7 3 13 11 12 0 47 34 98 样例输出: 47 13 11 7 3 0 4 12 34 98 提示: 1. 测试数据可能有很多组,请使用while(cin>>

51Nod - 1117 聪明的木匠

51Nod - 1117 聪明的木匠 一位老木匠需要将一根长的木棒切成N段.每段的长度分别为L1,L2,......,LN(1 <= L1,L2,-,LN <= 1000,且均为整数)个长度单位.我们认为切割时仅在整数点处切且没有木材损失. 木匠发现,每一次切割花费的体力与该木棒的长度成正比,不妨设切割长度为1的木棒花费1单位体力.例如:若N=3,L1 = 3,L2 = 4,L3 = 5,则木棒原长为12,木匠可以有多种切法,如:先将12切成3+9.,花费12体力,再将9切成4+5,花费9体力

字符输入输出流

package com.sxt.copy2; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; /* * 字符输入输出流 * Reader * Writer */ public class TestCopy { pub

NBUT 1525 Cow Xor(01字典树+前缀思想)

[1525] Cow Xor 时间限制: 2000 ms 内存限制: 65535 K 问题描述 农民约翰在喂奶牛的时候被另一个问题卡住了.他的所有N(1 <= N <= 100,000)个奶牛在他面前排成一行(按序号1..N的顺序),按照它们的社会等级排序.奶牛#1有最高的社会等级,奶牛#N最低.每个奶牛同时被指定了一个不唯一的附加值,这个数在0..2^21 - 1的范围内. 帮助农民约翰找出应该从哪一头奶牛开始喂,使得从这头奶牛开始的一个连续的子序列上,奶牛的附加值的异或最大. 如果有多个这