看图写树,紫书P170UVa10562(c++输入问题汇总)
来源:互联网 发布:java选择结构的种类 编辑:程序博客网 时间:2024/06/05 09:44
本题算法考察非常简单,可笔者在做题过程中因为字符的读入问题可谓是漏洞百出。提交了两次都是wa,还是基本功不扎实。主要问题都集中在字符处理问题上。
关于c++字符输入问题的最终详细总结:
1.cin几乎等同于scanf(“%s”),这两种读取字符串的方式都是遇到空格和回车就停止。读取的字符串末尾自动补齐‘\0’.最重要的是,不会带走缓冲区里面的换行符。
2.gets(arr), 从标准流中读取一整行字符,直到遇到回车才停止。读取的字符串末尾自动补齐‘\0’。最重要的是,它会带走缓冲区里面的换行符。
3.fgets(arr, num, position), 从目标地址处(position)读取num-1个字符。重点强调是num-1个字符,不是num个,因为最后一个位置会被自动补齐‘\0’。*最重要的是,不会带走缓冲区里面的空格与换行符。* 也就是说,fgets(arr, num, position)是cin与scanf(“%s”)的特别版(能指定读取字符数量与地址)。
4.getchar(), 只读取一个字符,无论什么字符它都读,什么空格换行它都读。它就是单字符的操作,* 不会在读取的字符串末尾加什么‘\0’,也不会带走缓冲区里面的空格与换行符。*
至于本题的思路就比较简单,多支树的dfs遍历。
下面是自己的代码:
// UVa297 Quadtrees// scienceZ#include <cstdio>#include <vector>#include <iostream>#include <cstring>using namespace std;char arr[250][250];string ans;int n;void dfs(int i, int j){ ans.push_back(arr[i][j]); ans.push_back('('); int l = j, r = j; if(arr[i+1][j] == '|'){ while(arr[i+2][l-1] == '-') l--; while(arr[i+2][r+1] == '-') r++; for (; l<=r; l++) if(arr[i+3][l] != ' ' && arr[i+3][l] != 0) dfs(i+3, l); } ans.push_back(')');}int main(){ cin >> n; while(n--){ memset(arr, 0, sizeof(arr)); ans.clear(); int i = 0, j = 0; char t = getchar(); while (t == '\n') t = getchar(); while(t != '#'){ if (t != '\n'){arr[i][j] = t; j++;} else {i++; j = 0;} t = getchar(); } ans.push_back('('); for(int j = 0; j < 209; j++) if (arr[0][j] != ' ' && arr[0][j] != 0){dfs(0, j);break;} ans.push_back(')'); cout << ans << endl; } return 0;}
阅读全文
0 0
- 看图写树,紫书P170UVa10562(c++输入问题汇总)
- C/C++输入,输出汇总
- C/C++问题汇总
- c字符输入相关问题(缓冲区)
- C++,C 编译问题汇总(持续更新)
- c语言基础问题汇总
- C语言变量问题汇总
- C/C++面试问题汇总
- C语言字符输入问题
- C#+Matlab项目开发纪实(问题汇总)
- C#text 中控制输入的的问题(KeyPress)
- ★约瑟夫出圈问题(可动态输入)C/C++
- scanf()中的%c 不能正常输入的问题
- 特殊的输入汇总(长期更新)
- 【C++学习笔记】问题汇总
- 【C++学习笔记】问题汇总
- 【C++学习笔记】问题汇总
- 【C++学习笔记】问题汇总
- Objective-C中类是如何存储在内存中的
- 你觉得编程不易,不放把它当成一个故事
- 自定义View画三个圆
- Android系统权限和root权限
- 自定view
- 看图写树,紫书P170UVa10562(c++输入问题汇总)
- 下载JDK历史版本
- 30天自制操作系统-第3天心得笔记
- 拷贝构造函数的调用时机
- 关于MindManager 思维导图2018 中文版介绍
- (二)日志规约
- Python 多继承
- Java web实现文件打包下载功能
- Sybase数据库中自旋锁和CPU使用率