Long Pressed Name(C++長按鍵入)

解題思路:

(1)設置一個“前字符”等於兩個字符串之前最近的相等字符

(2)判斷兩個字符串當前位置的字符是否相等

(3)相等,則繼續判斷下一個位置,不等則判斷打印字符串是否等於一開始的“前字符”,不等返回false

(4)最後需要判斷剩餘的打印字符串是否全部相同

class Solution {
public:
    bool isLongPressedName(string s,string t) {
		if(s.length()>t.length()) return false;
        int i=0,j=0;
        char prev=' ';
        while(i<s.length() && j<t.length()) {
	    if(s[i]!=t[j]) {
		if(t[j]==prev) {
		    while(j<t.length() && t[j]==prev) {
			j++;
		    }
		    if(j==t.length()) return false;
		} else return false;
	    } else {
		prev = s[i];
		i++;j++;
	    }
	} 
	if(i==s.length()) {
	    while(j<t.length()&&t[j]==prev) {
	        j++;
	    }
	    if(j==t.length()) return true;
	    else return false;
        } else return false;
        
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章