SZU:G34 Love code
Judge Info
- Memory Limit: 32768KB
- Case Time Limit: 10000MS
- Time Limit: 10000MS
- Judger: Normal
Description
A boy and a girl both like studying code in their extra-curricular. Of course, they like each other. Therefore, the boy shows his love to the girl one day. The girl smiles and leaves a series of Morse code. After 5 times of decoding, the boy will get the answer. The boy makes his best efforts but 5 times of decoding is almost impossible. He has no choice but to ask for help on the Internet. He posts his troublesome on baidu tieba. Everyone is eager to help him. And after 6 hours, miracle happens. The boy get his answer. Beside deeply moved, the author also hope you can show him this romantic again. We will tell you the 5 times of encryption and the decoded words. We want you to tell us the original code. We suppose the original code is:
/****-/*----/----*/****-/****-/*----/---**/*----/****-/*----/-****/***--/****-/*----/----*/**---/-****/**---/**---/***--/--***/****-/
1. Using Morse code, we can transform the original code into number. Every '/' separates a number.
We will get a number list.
41 94 41 81 41 63 41 92 62 23 74
2. B. Using these numbers, in the keyboard of cell phone, we will decorate 26 letters on the key 2-9 so that we can use two numbers to get one letter. Such as 63 means the number 6 key, the 3th letter. It’s ‘O’.
The number list became a letter string
G Z G T G O G X N C S
3. Continue to our transformation, we use our computer keyboards this time. Our familiar keyboard often arranges letters in the order of "QWERTY...”. So we suppose 'Q' to 'A','W' to 'B' ..'G' to 'O'..at last 'M' to 'Z'.
The new code is
O T O E O I O U Y V L
4. We will soon get the answer after the last two steps. Are you eager to know it? This time is barrier transforming. We cut the original code into the former part and the after part. If the length of the code is odd, the former part is allowed to have one more letter than the after part. Then, put every letters of the after part into every interval of the former part. After cutting the code, we get "O T O E O I ","O U Y V L". Then after putting them alternately, we get
O O T U O Y E V O L I.
5. Clever as you, have you get the answer? If we output the strings in reverse order, we can see the simple and pure romance.
ILOVEYOUTOO (I Love You Too!)
Input
The first line is an integer t ,means the number of test cases. The next t lines, each has a string as the test data.
Output
Output the original code. (the answer won’t be longer than 30 character.)
Sample Input
/****-/*----/----*/****-/****-/*----/---**/*----/****-/*----/-****/***--/****-/*----/----*/**---/-****/**---/**---/***--/--***/****-/
Sample Output
ILOVEYOUTOO
Hint
Morse code table (number part)
0 ----- 5 *****
1 *---- 6 -****
2 **--- 7 --***
3 ***-- 8 ---**
4 ****- 9 ----* cell phone keyboard character table
2.abc 3.def
4.ghi 5.jkl
6.mno 7.pqrs
8.tuv 9.wxyz computer keyboard order table
"QWERTYUIOPASDFGHJKLZXCVBNM"
解题思路: 字符串末尾没有加'\0' 导致我4个小时调试,找大神才解决。
code :
#include <stdio.h>
#include <string.h>
#include <stdio.h> char M[][] = {"/-----","/*----","/**---","/***--","/****-","/*****","/-****","/--***","/---**","/----*"};
char N[][]={"","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};
char s[];
char A[];
int B[];
char C[];
char D[];
char T[];
char E[];
char F[];
char G[]; int main() {
int t,i,k,j, len;
scanf("%d", &t);
getchar();
strcpy(C,"QWERTYUIOPASDFGHJKLZXCVBNM"); while (t--) {
scanf("%s", s);
len = strlen(s);
for (i=;i<len;i+=) {
j=i;
k=;
while (k<)
A[k++] = s[j++];
A[] = '\0';
for(j=;j<;j++) if(strcmp(A,M[j])==) break;
B[i/] = j;
} for(i=;i<len/;++i){
T[i]=N[B[*i]][B[*i+]-];
} k=i; for(i=;i<k;i++){ for(j=;j<;++j)
if(T[i]==C[j]){
T[i]=('A'+j);
break;
}
} j=;
for(i=; i<(k-)/+; i++) {
G[j] = T[i];
j+=;
}
j=;
for(i=(k-)/+; i<k; i++) {
G[j] = T[i];
j+=;
}
G[k] = '\0'; for(i = k-; i > -; i--)
printf("%c", G[i]);
printf("\n");
}
return ;
}
dd 帮我调试的代码:
#include <stdio.h>
#include <string.h>
#include <stdio.h> char M[][] = {"-----","*----","**---","***--","****-","*****","-****","--***","---**","----*"};
char N[][]={"",""," ABC"," DEF"," GHI"," JKL"," MNO"," PQRS"," TUV"," WXYZ"};
char s[];
char A[];
int B[];
char C[];
char D[];
char T[];
char E[];
char F[];
char G[]; int main() {
int t,i,k,j, len;
scanf("%d", &t);
getchar();
strcpy(C,"QWERTYUIOPASDFGHJKLZXCVBNM"); while (t--) {
scanf("%s", s);
len = strlen(s);
for(i = ; i < len; i++)
if(s[i] == '/')
break;
int e = ;
for (i++; i<len;i+=) {
j=i;
k=; strcpy(A, "");
strncpy(A,&s[i],);
A[]='\0'; for(j=;j<;j++) if(strcmp(A,M[j])==) break;
B[e++] = j;
} k = ;
for(i=; i<e; i+=)
T[k++] = N[B[i]][B[i+]];
T[k] = '\0'; for(i=;i<k;i++){ for(j=;j<;++j)
if(T[i]==C[j]){
T[i]=('A'+j);
break;
}
} e = ;
for(i=;i<(k-)/+;i++){
//E[i]=T[i];
G[e] = T[i];
e+=;
} e = ;
for(i=(k-)/+;i<k;i++){
//F[j++]=T[i];
G[e] = T[i];
e+=;
}
G[e] = '\0'; for(i = k-; i > -; i--)
printf("%c", G[i]);
printf("\n");
}
return ;
}
SZU:G34 Love code的更多相关文章
- 《Clean Code》阅读笔记
Chapter 2 命名 命名要表现意图 避免歧义和误导,增强区分 命名可读性:便于发音,增强印象,便于交流 命名可查性:增强区分,便于搜索 类和对象的命名:名词或名词短语 方法的命名:动词或动词短 ...
- Visual Studio Code 代理设置
Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器,在十多年的编程经历中,我使用过非常多的的代码编辑器(包括 IDE),例如 Fron ...
- 我们是怎么做Code Review的
前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...
- Code Review 程序员的寄望与哀伤
一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...
- 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM
刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下 ...
- 在Visual Studio Code中配置GO开发环境
一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github ...
- 代码的坏味道(14)——重复代码(Duplicate Code)
坏味道--重复代码(Duplicate Code) 重复代码堪称为代码坏味道之首.消除重复代码总是有利无害的. 特征 两个代码片段看上去几乎一样. 问题原因 重复代码通常发生在多个程序员同时在同一程序 ...
- http status code
属于转载 http status code:200:成功,服务器已成功处理了请求,通常这表示服务器提供了请求的网页 404:未找到,服务器未找到 201-206都表示服务器成功处理了请求的状态代码,说 ...
- Visual Studio Code——Angular2 Hello World 之 2.0
最近看到一篇用Visual Studio Code开发Angular2的文章,也是一篇入门教程,地址为:使用Visual Studio Code開發Angular 2專案.这里按部就班的做了一遍,感觉 ...
随机推荐
- openstack 网络简史
openstack 网络简史 研究openstack有2个月的时间,这段时间从网上获取N多宝贵资料,对我的学习有非常大帮助,在加上我自己的研究,最终对openstack整个网络体系有了个浅显的认识,写 ...
- Redis源代码分析(十一年)--- memtest内存测试
今天,我们继续redis源代码test下测试在封装中的其它文件.今天读数memtest档,翻译了,那是,memory test 存储器测试工具..可是里面的提及了非常多东西,也给我涨了非常多见识,网上 ...
- JS脚本显示当前日期+星期几[转]
以下的代码提供了显示当前日期和星期几的实现方法: function writeDateInfo() { var day=""; var month= ...
- 教你Ant安装和配置
Ant它是基于Java施工工具,它的主要作用是产生能够运行Java计划,把握Ant一些功能可以使项目更专业. 忙乱,可以在这里下载2014年8最近一个月Ant http://download.csdn ...
- linux-ubuntu关闭防火墙
SYNOPSIS iptables [-t table] {-A|-C|-D} chain rule-specification ip6tables [-t table] {-A|-C|-D} cha ...
- Metrics监控应用
使用Metrics监控应用程序的性能 在编写应用程序的时候,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析.在很多时候,我们可能需要了解整个系统在当前 ...
- my97 日期控件
官网:http://www.my97.net/ 好多广告啊! 文档地址: http://www.mysuc.com/test/My97DatePicker/
- js checkbox多选值采集
var objs = document.getElementsByTagName("input"); for (var i = 0; i < objs.length; i++ ...
- Hadoop-2.4.1完全分布式环境搭建
Hadoop-2.4.1完全分布式环境搭建 Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...
- Mongodb操作之查询(循序渐进对比SQL语句)
工具推荐:Robomongo,可自行百度寻找下载源,个人比较推荐这个工具,相比较mongoVUE则更加灵活. 集合简单查询方法 mongodb语法:db.collection.find() //co ...