$O(l+n)$
linked list 문제
#include<cstdio> #include<list> using namespace std; int n, p, q; char s[100001]; list<char> l; int main() { scanf("%s", s); for (int i = 0; s[i]; i++) l.push_back(s[i]); auto it = l.end(); for (scanf("%d", &n); n--;) { scanf(" %c", &p); if (p == 'L'&&it != l.begin()) it--; if (p == 'D'&&it != l.end()) it++; if (p == 'B'&&it != l.begin()) it = l.erase(--it); if (p == 'P') scanf(" %c", &q), l.insert(it, q); } for (auto it : l) putchar(it); return 0; }
댓글 없음 :
댓글 쓰기