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專案.这里按部就班的做了一遍,感觉 ...
随机推荐
- LeetCode Merge k Sorted Lists 解决报告
https://oj.leetcode.com/problems/merge-k-sorted-lists/ 归并K已经整理阵列,和分析算法的复杂. 解决报告:无论是不考虑优化,最简单的实现是要重新走 ...
- NET 领域驱动设计实战系列总结
NET 领域驱动设计实战系列总结 一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计.领域驱动设计C# 2008实现.领域驱动设计:软件核 ...
- SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...
- 学习日记之单例模式和Effective C++
单例模式(Singleton):保证一个类仅有一个实例,并提供一个訪问它的全局訪问点. (1),通常我们能够让一个全局变量使得一个对象被訪问,但它不能防止你实例化多个对象.一个最好的办法就是,让类自身 ...
- C# 跨线程呼叫控制
在C# 应用程序开发, 我们经常要UI作线程分开,防止界面停止响应. 同一时候我们又须要在工作线程中更新UI界面上的控件, 以下介绍几种经常使用的方法 阅读文件夹 线程间操作无效 第一种办法:禁止编 ...
- python_在windows下安装配置python开发环境及Ulipad开发工具
最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...
- 小强HTML5手机发展之路(52)——jquerymobile触摸互动
当使用移动设备的触摸操作,最常用的是点击.按住屏幕或手势,jQuery Mobile能够通过触摸事件绑定行为来响应用户的特定触摸. 一个.点击并按住 直接在代码(在代码中的一切,它使产品!) < ...
- Tomcat剖析(一):一个简单的Web服务器
Tomcat剖析(一):一个简单的Web服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器 ...
- Ubuntu 12.04 64bit 安装编译GCC 4.1.2 绝对原创
1. 下载并解压源代码: wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 tar jxvf gcc-4.1.2. ...
- iOS_文章3党库SDWebImage
1,下载的文章3党库SDWebImage代码包增加到project 2,进入project的Build Phases,将源代码包里面的所有.m文件所有加入到project 3,导入第3方类库依赖的两个 ...