While I was solving a problem in LeetCode, I found something very strange.
I have this line which I assume gives me a time limit exceeded error:
s.erase(i-k, k);
when I comment(//) this line, it doesn't show me time exceed error, but the strange part was, it has never executed even when i didn't comment it.
below is the entire code. and Here is the problem link.
class Solution {
public:
    string removeDuplicates(string s, int k) {
        char prev = s[0];
        int cnt = 1;
        cnt = 1;
        for(int i = 1; i < s.size() + 1; i++){
            if(s[i] == prev){
                cnt++;
            } else {
                if(cnt == k){
                    // when input is "abcd" it never comes to this scope
                    // which is impossible to run erase function. 
                    s.erase(i-k, k);
                    i = 0;
                }
                
                if(i >= s.size()) break;
                
                cnt = 1;
                prev = s[i];
            }
        }
        
        return s;
    }
};
When Input is "abcd", it never even go to the if scope where 'erase' function is in. Although 'erase' function never run, it still affect on the time complexity, and I can't get the reason.
Does anyone can explain this? or is this just problem of LeetCode?
 
    