Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Seeking helps in explaination of syntax for var[x[n]]

Can someone help me to understand below syntax… thanks in advance.

class Solution {
public:
int lengthOfLongestSubstring(string s) {
    const int n = s.length(); 
    int ans = 0; //set a var as answer;
        for(int i = 0; i < n; ++i){
            vector <int> seen(128); 
            int j = i;
                while(j < n && !seen[s[j]]) <----here
                seen[s[j++]]=1;             <----here
                ans=max(ans, j - i);        <----here
  }
    return ans;
 }
};
                

wasn’t sure what the syntax means !seen[s[j]]
same as this seen[s[j++]]=1
also don’t know why i can be subtracted by j…

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Case 1

s[j]

The above means the element at index j of the string named s.

Case 2

seen[s[j]]

The above means the element at index s[j] of variable named seen.

Case 3

seen[s[j++]]=1;

For the above you have to know about the post-increment operator. So lets say we have:

int var = 0;
std::cout << var++ <<std::end; //this will print 0

The ++ in var++ means we are incrementing the value of var by 1 so that it now becomes 1, but var++ returns the old value of the variable var which is why we get 0 as the output.

Now lets come back to:

seen[s[j++]]=1;

The above means the element at index s[j++] of the variable named seen. But note j++ will do 2 things: First it will increment j by 1 and second it will return the old value of j. So s[j++] essentially means the element at index j of the string named s meanwhile the value of j is also incremented by 1. Thus as a whole, you’re assigning a value of 1 to the element at index s[j] of the variable named seen meanwhile also increment the value of j by one.

why i can be subtracted by j

This is because the value of j is incremented by 1 inside the while loop.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading