HTMLTAGS - Editorial

#include <bits/stdc++.h>
using namespace std;

int main()
{
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);

//#ifndef ONLINE_JUDGE
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
//#endif

    int t;
    cin >> t;
    while (t--)
    {
        string str;
        cin >> str;
        bool temp = false;

        if (str[0] == '<' && str[1] == '/' && str[str.size() - 1] == '>')
        {
            temp = true;
            for (int i = 2; i < str.size()-1; i++)
            {
                if (!isalnum(str[i]))
                {
                    temp = false;
                    break;
                    
                }
            }
        }
        if (temp)
        {
            cout << "Success" << endl;
        }
        else
        {
            cout << "Error" << endl;
        }
    }

    return 0;
}

The given test case seemed to work fine but still has not been accepted. Can somebody help me to identify the error?

bro u r pro

At line 25 you have made an error : s[3] == ‘4’ try converting it to s[i] == ‘4’ . Hope it helps. :slight_smile:

alnum() function returns true when character is uppercase, lowercase or digit so therefore your code also make temp false if it is a lowercase letter, therefore causing error.

1 Like

Could someone say what is wrong with my code ?

https://www.codechef.com/viewsolution/48220564

Consider the test input:

1
</aA>

Thanks… Its running now

1 Like

I’ve checked all the 3 conditions still I’m getting wrong ans – Here is the code –
t = int(input())
for _ in range(t):
tags = list(input())
if tags[0] != “<” or tags[1]!="/" or tags[-1]!=’>’:
print(“Error”)
else:
for i in range(2,len(tags)-1):
if tags[i].isalnum() == False:
flag = 0
break
elif tags[i].isalpha() and tags[i].isupper():
flag = 0
break
else:
flag = 1
if flag:
print(“Success”)
else:
print(“Error”)

Assuming you mean this:

1
</A>

@ssjgz
Yes…
This will give “Error” as output because of the condition -

which is correct right…?

Your solution gives Success for that testcase.

Actually, I meant this solution
I checked on all test cases…

Oh, right:

[simon@simon-laptop][06:52:31]
[~/devel/hackerrank/otherpeoples]>cat failed_test_case.txt
1
</>
[simon@simon-laptop][06:52:37]
[~/devel/hackerrank/otherpeoples]>cat failed_test_case.txt | ./sam_2909-HTMLTAGS.py 
Traceback (most recent call last):
  File "./sam_2909-HTMLTAGS.py", line 18, in <module>
    if flag:
NameError: name 'flag' is not defined
1 Like

But, I’m not getting any error when I run it on my platform as well as on codechef platform… otherwise it would have given error msg… But i’m getting WA. Also,

this test case gives output as “Error” on codechef platform as well…

Weird - something to do with the Python version, maybe.

maybe… but I use python 3 only…

At line 8 there’s a mistake, you should iterate i to c - 2 or more specifically (i < c - 1). Then it will get accepted.

@ssjgz yeah i didn’t considered the said test case in my code.
As pointed out by @prashant_th18 i corrected that .
Thank you both of you.

hi, actually this was right… i should have defined the flag earlier before use…
But as I was running on jupyter it must have taken the previous cell’s flag and so i didn’t get the error at my side… I corrected it now, and the issue is solved… thanks a lot!!

1 Like

Hello, can anyone please help me find the error in my code? https://www.codechef.com/viewsolution/48355586