aakashyadav2000's blog

By aakashyadav2000, history, 5 months ago, In English

can anyone pls explain me why this code is not working for ques B. Decode String

while testing with the all 9 test cases(which is given in ques) this test case 5 11111 is giving me wrong ans while testing it separately it is giving the right ans

include<bits/stdc++.h>

using namespace std;

typedef long long li;

int main(){

li t;

cin>>t;

string ans="abcdefghijklmnopqrstuvwxyz";

while(t--){
   li n;
   cin>>n;
   string s;
   cin>>s;
   string res="";

   for(li i=0;i<s.length();i++){
    if( s[i+2]=='0' && s[i+3]!='0' && i<n){
           res+=ans[(s[i]-'0')*10+(s[i+1]-'0'-1)];
           i+=2;
   }else{
          res+=ans[s[i]-'0'-1];
      }
   }
   cout<<res<<endl;
}
return 0;

}

 
 
 
 
  • Vote: I like it
  • -9
  • Vote: I do not like it

»
5 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by aakashyadav2000 (previous revision, new revision, compare).

»
5 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by aakashyadav2000 (previous revision, new revision, compare).

»
5 months ago, # |
  Vote: I like it +10 Vote: I do not like it

You are trying to access out of bounds indices in s[i+1] and s[i+3] when i = s.length()-1, i = s.length()-2 and s.length()-3.

»
2 months ago, # |
  Vote: I like it 0 Vote: I do not like it

in the if condition try to change "n" to "n-2" and it will work for you !