445 Marvelous Mazes

Q445: Marvelous Mazes

本題中你的任務是寫一支可以畫迷宮的程式,這個迷宮將由A-Z26個字母及*(星號)和空白字元組成。

Input and Output

你的程式必須從input讀入迷宮的資訊,輸入將包含數列字元,你的程式必須依照指示畫出迷宮。迷宮的每一列都會藉由一系列的數字和字元來表達,數字代表這個字元被使用多少次。如果數字超過一位數則這個字元重複出現的次數為每一位數相加的總合。

在input中小寫的"b"代表空白字元,驚嘆號(!)以及換行都代表結束一列。

迷宮的列數並沒有限制,但是每一列不會超過132個字元。

Sample Input

1T1b5T!1T2b1T1b2T!1T1b1T2b2T!1T3b1T1b1T!3T3b1T!1T3b1T1b1T!5T1*1T
 
11X21b1X
4X1b1X

Sample Output

T TTTTT
T  T TT
T T  TT
T   T T
TTT   T
T   T T
TTTTT*T
 
XX   X
XXXX X
很无语,一直WA,呵呵
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main()
{
    char in;
    int sum = 0;
    bool isDigit = false;
    while((in = getchar())!=EOF)
    {

            if(in >= '0' && in <= '9')
            {
                if (!isDigit)
                {
                    isDigit = true;
                    sum = 0;
                }
                sum+=in-'0';
            }
            else
            {
                if(isDigit)
                {
                    isDigit = false;
                }
                char c;
                switch(in)
                {
                    case 'b':c = ' ';break;
                    case '!':c = '\n';sum = 1;break;
                    default :c = in;break;
                }
                for(int j = 0 ; j < sum ; ++j)
                    cout<<c;
            }
        }

    return 0;
}

 

 

posted @ 2012-06-03 21:31  godjob  Views(264)  Comments(0Edit  收藏  举报