sample input |
sample output |
Thi<UP>sIs<DOWN>EaSY</DOWN>Pr<UP>O</UP>ble</UP>m |
ThiSISeasyPROBLEm |
Online Contester Team ? 2002 - 2010. All rights reserved. |
思路:栈的应用,具体看代码;
AC代码:
#include <cstdio> #include <cstring> #include <algorithm> #include <stack> using namespace std; char str[1005]; int main() { while(gets(str) != NULL) { stack<int> s; int len = strlen(str); for(int i = 0; i < len; i++) { if(str[i] == '<') { if(str[i+1] == 'U') { s.push(1); i += 3; } else if(str[i+1] == 'D') { s.push(2); i += 5; } else if(str[i+1] == '/') { s.pop(); if(str[i+2] == 'U') i += 4; else if(str[i+2] == 'D') i += 6; } } else if(s.empty()) { printf("%c", str[i]); } else if(s.top() == 1) { if(str[i] >= 'a' && str[i] <= 'z') printf("%c", str[i]-32); else printf("%c", str[i]); } else if(s.top() == 2) { if(str[i] >= 'A' && str[i] <= 'Z') printf("%c", str[i]+32); else printf("%c", str[i]); } } printf("\n"); } return 0; }
原文地址:http://blog.csdn.net/u014355480/article/details/44275595