Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class TextEditor {
- string _text;
- int cur;
- public:
- TextEditor() {
- _text = "";
- cur = 0;
- }
- void addText(string text) {
- // printf("add : %s\n", text.data());
- _text.insert(cur,text);
- cur += text.size();
- // cout <<" "<< " text = "<< _text << " cur = " << cur << endl;
- }
- int deleteText(int k) {
- // printf("delete : %d\n", k);
- if(k > cur){
- // printf("case 1\n");
- _text.erase(0, cur);
- // printf("text = %s cur = %d\n", _text.data(), cur);
- k = cur;
- cur = 0;
- return k;
- } else {
- // printf("case 2\n");
- _text.erase(cur - k , k);
- // cout << _text << endl;
- // printf("text = %s", _text.data());
- cur -= k;
- // cout << " delete "<< " text = "<<_text << " cur = " << cur << endl;
- return k;
- }
- }
- string cursorLeft(int k) {
- // printf("left : %d\n", k);
- if(k > cur){
- cur = 0;
- return "";
- } else {
- cur -= k;
- int d = min(10, cur);
- // cout << " "<< " text = "<< _text << " cur = " << cur << endl;
- return _text.substr(cur - d, d);
- }
- }
- string cursorRight(int k) {
- // printf("right : %d\n", k);
- if(cur + k > _text.size()){
- cur = _text.size();
- int d = min(10, cur);
- // printf("text = %s cur = %d\n", _text.data(), cur);
- return _text.substr(cur - d, d);
- } else {
- cur += k;
- int d = min(10, cur);
- // cout << " "<< " text = "<< _text << " cur = " << cur << endl;
- return _text.substr(cur - d, d);
- }
- }
- };
- /**
- * Your TextEditor object will be instantiated and called as such:
- * TextEditor* obj = new TextEditor();
- * obj->addText(text);
- * int param_2 = obj->deleteText(k);
- * string param_3 = obj->cursorLeft(k);
- * string param_4 = obj->cursorRight(k);
- */
Advertisement
Add Comment
Please, Sign In to add comment