$O(tl)$
링크드 리스트를 이용한다.
#include<cstdio> #include<list> using namespace std; int t; char s[1000001]; int main() { for (scanf("%d", &t); t--;) { list<char> l; auto p = l.begin(); scanf("%s", s); for (int i = 0; s[i]; i++) { if (s[i] == '-') { if (p != l.begin()) p = l.erase(--p); } else if (s[i] == '<') { if (p != l.begin()) p--; } else if (s[i] == '>') { if (p != l.end()) p++; } else p = l.insert(p, s[i]), p++; } for (char c : l) putchar(c); puts(""); } return 0; }
댓글 없음 :
댓글 쓰기