+ 4

Not able to find the mistake done in the coding .Pls, help me in finding the error. https://www.sololearn.com/coach/77?ref=app

I was trying to solve the "security code coach problem" , so the code which i've written is running well for some cases while for others it is not. Like when i gave the input as 👉🏻xxGxx$T👈🏻 so, it should give "ALARM" as the output since 'G' is not present between '

#x27; and 'T' but idk why it is giving the output as "quiet". But if I'm giving 👉🏻GxxT$ , GT$ or xxxGGGxxxSxxGxxxTT 👈🏻 as inputs it is giving the desired output. So, what am i missing in my code b/c of which some inputs are running and some are not? This is the code which I've written 👇🏻 https://code.sololearn.com/cwRv7Dft17A8/?ref=app

14th Jan 2020, 9:24 AM
Smriti Kaur
Smriti Kaur - avatar
10 Answers
+ 1
Smriti Kaur ch=format.charAt(I) ; if(ch=='G') { int indG=format.indexOf(ch); //here indG extract the first occurrence of Char 'G' which is 3 so not updating to next value. But why need this to search again.. Here i value is the current character index. So Put like G[b] =i; b++; is enough. // G[b]=indG; // b++; Similarly in all calculations you are taking extra identifiers and calculations... So think about it, after you got results.. First now update above one correction... You need same corrections for others if input have more than $T values... But there is no inputs with double other than G...
14th Jan 2020, 3:39 PM
Jayakrishna 🇮🇳
+ 3
Jayakrishna yeahhh rgt! After doing the above mentioned correction all the 6 cases matched.🎉 Thanks for helping 🙂
14th Jan 2020, 4:01 PM
Smriti Kaur
Smriti Kaur - avatar
+ 2
Jayakrishna yes, u r rgt ...after doing that correction the code is running fine but now it is not running correctly for this input👉🏻xxxGGxx$xxGxxT👈🏻 as it is giving "ALARM" as the output although G is present between $ and T.
14th Jan 2020, 11:28 AM
Smriti Kaur
Smriti Kaur - avatar
+ 2
Jayakrishna Oh yes sorry...
14th Jan 2020, 3:37 PM
Smriti Kaur
Smriti Kaur - avatar
+ 2
Jayakrishna oh nice but what do u mean by saying giving values to G,T and $ ? Can u pls explain it a bit?
15th Jan 2020, 5:44 AM
Smriti Kaur
Smriti Kaur - avatar
+ 2
Jayakrishna Oh okay now i got it ...cool ... n once again thank u 🎉
15th Jan 2020, 10:16 AM
Smriti Kaur
Smriti Kaur - avatar
+ 1
Smriti Kaur In third else part you should include as else if(ch=='
#x27;) { } Also.. Otherwise other charecters are also included... By your input, it having the values for G=3, $=1, T=6. So satisfying your condition..
lt;G<T because from different Arrays the values from. There is need of 3 for loops actually, you can do it by one loop..
14th Jan 2020, 10:47 AM
Jayakrishna 🇮🇳
+ 1
Oh. Are you updated this code..? According to this am not getting Alarm...
14th Jan 2020, 3:08 PM
Jayakrishna 🇮🇳
+ 1
Smriti Kaur You are Wel come.. And for this problem, I want mention alternative efficient way, which may help you later.. Just in one for loop travesing though string element, give values to G, T, $. After just put in if else.. Like if T<G<$ or
lt;G<T then print quiet else Alarm...
14th Jan 2020, 4:25 PM
Jayakrishna 🇮🇳
+ 1
The alternative variables that you are taken as T[], G[], S[] Arrays.. G as guard, T as thief, $ as dollar... Because only single value we need to compare. So arrays are not needed in this case.. If you try this way you need not all those 70+ lines of code. .. Simple code makes you rectify logic errors quickly...
15th Jan 2020, 10:11 AM
Jayakrishna 🇮🇳