UVA - 213 Message Decoding (输入字符串并对单个字符进行操作的输入输出)
POINT:
关于表示一个编码:利用code字符数组表示一个编码字符,其中code[len][val]表示长度为len,二进制值为val的字符;
主程序如下:
#include <iostream>
#include <sstream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <set>
#include <cctype>
#include <algorithm>
#include <cmath>
#include <deque>
#include <queue>
#include <map>
#include <stack>
#include <list>
#include <iomanip> using namespace std;
#define INF 0x7fffffff
#define maxn 1010
typedef unsigned long long ull; int code[][<<]; int main()
{
while(readcodes())
{
//printcodes();
for(;;)
{
int len = readint();
if(len == ) break;
//printf("len = %d\n", len); for(;;)
{
int v = readint(len);
//printf("v = %d\n", v);
if(v == (<<len)-) break;
putchar(code[len][v]);
}
}
putchar('\n');
}
return ;
}
其中readcodes()函数用来读取编号,readint()函数用来读取c位二进制字符并转化为整数(val);
如何处理“编码文本可由多行组成”
bool readcodes()
{
memset(code, , sizeof(code));//清空数组
code[][] = readchar();//输入开始;单个字符输入
for(int len = ; len <= ; len++)
{
for(int val = ; val < (<<len)-; val++)
{
int ch = getchar();
if(ch == EOF) return ;
if(ch == '\n' || ch == '\r') return ; code[len][val] = ch;
}
}
return ;
}
int readint(int c)
{
int v = ;
while(c--)
v = v*+readchar()-'';
return v;
}
readchar()函数代码如下:
int readchar()
{
for(;;)
{
int ch = getchar();
if(ch != '\n' && ch != '\t') return ch;
}
}
另外,Printcodes()函数本身对题目没有要求,但是对于调试代码是有用的。
UVA - 213 Message Decoding (输入字符串并对单个字符进行操作的输入输出)的更多相关文章
- UVa 213 Message Decoding(World Finals1991,串)
Message Decoding Some message encoding schemes require that an encoded message be sent in two part ...
- UVA 213 Message Decoding 【模拟】
题目链接: https://cn.vjudge.net/problem/UVA-213 https://uva.onlinejudge.org/index.php?option=com_onlinej ...
- uva 213 Message Decoding
思路来自紫书...开始时的思路估计100行+,果断放弃!关键:1.正确提取出函数! initmap():初始化字母与整数的映射. returnint(x):向后读取x位,并转换为十进制数返回. ...
- 【每日一题】 UVA - 213 Message Decoding 模拟解码+读入函数+阅读题
题意:阅读理解难度一道比一道难orz.手摸了好久样例 题解: 读入:大循环用getline读入header顺便处理一下, 里面再写两重循环,外层一次读三个串,内层一次读num个串. 之后就查表,线性 ...
- uva 213 - Message Decoding (我认为我的方法要比书上少非常多代码,不保证好……)
#include<stdio.h> #include<math.h> #include<string.h> char s[250]; char a[10][250] ...
- JS取出特定字符前后的字符串,针对一串字符里面的单个字符前后的字符串
//针对一串自负里面的单个字符前后的字符串<!doctype html> <html> <head> <meta charset="utf-8&qu ...
- uvaoj 213 - Message Decoding(二进制,输入技巧)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Base64 报错 的解决办法 (Base-64 字符数组或字符串的长度无效。, 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。)
Base64 报错 的解决办法, 报错如下:1. FormatException: The input is not a valid Base-64 string as it contains a n ...
- 利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!
利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow + qrcode 模块 核心代码import qrcode qr = ...
随机推荐
- Linux 多线程编程--线程退出
今天分析项目中进程中虚存一直增长问题,运行10个小时虚存涨到121G ,RSS占用为16G 非常恐怖. Valgrind测试无内存泄漏. 内存32G 64bit系统信息如下: Linux线程使用方式是 ...
- Inf2Cat, signability test failed.
驱动开发真不是那么好玩的,折腾了几天,排除了几个错误,又有新的错误了. 错误 1 error -2: "Inf2Cat, signability test failed.&quo ...
- USB HID报告及报告描述符简介
在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等.USB报告描述符(Report Descriptor)是HID ...
- “Clean Code” 读书笔记序
最近开始研读 Robert C.Martin 的 “Clean Code”,为了巩固学习,会把每一章的笔记整理到博客中.而这篇博文作为一个索引和总结,会陆续加入各章的笔记链接,以及全部读完后的心得体会 ...
- Extjs4 页数重置
重新加载数据store.loadPage(1);就是到第一页了
- 如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面? 什么是SPICE? SPICE (Simple Protocol for Independent Computi ...
- iOS开发核心语言Objective C —— 所有知识点总结
C和OC对比 OC中主要开发在什么平台上的应用程序?答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头?答:OC中新增关键字大部分是以@开头 OC中新增 ...
- BNUOJ 26579 Andrew the Ant
LINK:Andrew the Ant 题意:给一根长度为L的木头,上面有A只蚂蚁[每只蚂蚁给出了初始行走的方向,向左或向右].当两只蚂蚁相碰时,两只蚂蚁就朝相反的方向行走~╮(╯▽╰)╭问的是:最后 ...
- 重看Decorator Pattern,联想到Delegate传递及Flags Enum--欢迎拍砖!
话说装饰模式(Decorator)的动机是“动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更为灵活.[GOF <设计模式>]”.再次学到该模式,有感 ...
- 解决eclipse 使用run运行,始终会跳到debug模式!
查看此选项是否选择中卫always,若是,更改为never或prompt,重启eclipse即可