POJ-1750(缩进控制)

来源:互联网 发布:机械零件加工制作软件 编辑:程序博客网 时间:2024/05/18 01:08

题目:http://poj.org/problem?id=1750

虽然是道水题,但却考察了审题、分析和IO的控制能力,如果题目不是要求保持输入循序的话,思路就很清晰了,就是建trie再dfs,现在要求保持输入循序,实际上我们只需保证下一个word[i]和上一个word[i-1]拥有长度递增的相同前缀即可,如果不是则缩进输出前面的word,并记录当前的缩进量。


#include <cstdio>#include <cctype>#define MAX100005char word[MAX][11] = {0};inline int min(int a, int b){ return a < b ? a : b; }int samePrefix(const char* s, const char* t){int len = 0;for(; *s && *s == *t; ++s, ++t) ++len;return len;}void showTable(int s, int e, int n){for(; s < e; ++s, ++n){for(int i = 0; i < n; ++i) putchar(' ');puts(word[s]);}}int main(){int i = 1, start = 1, prefix = 0, predicate = 0;for(; gets(word[i]) && islower(word[i][0]); ++i){int len = min(samePrefix(word[i], word[i-1]), ++predicate);showTable(start, i, prefix);start = i;prefix = predicate = len;}showTable(start, i, prefix);return 0;}


0 0
原创粉丝点击