Sherlock and the Valid String : Looking for “Sherlock and the Valid String” solution for Hackerrank problem? Get solution with source code and detailed explainer video.
Sherlock considers a string to be valid if all characters of the string appear the same number of times. It is also valid if he can remove just 1 character at 1 index in the string, and the remaining characters will occur the same number of times. Given a string s, determine if it is valid. If so, return YES, otherwise return NO.
Go to problem statement
Explanation Video:
Youtube Channel partner: CodingCart
Mentor: Satyendra Jaiswal
Langauge: Python
Source Code: for isValid
function
# Complete the isValid function below.
def isValid(s):
a=Counter(s)
val=list(a.values())
res=Counter(val)
v=list(res.keys())
if len(s)==1 or (max(v)-min(v))==0:
return'YES'
elif len(v)<3 and ((max(v)-min(v)==1 and res.get(max(v))==1) or (min(v)==1 and res.get(min(v))==1)):
return 'YES'
else:
return'NO'
coming soon…
coming soon…
Full Source Code: Sherlock and the Valid String
#!/bin/python3
import math
import os
import random
import re
import sys
from collections import Counter
# Complete the isValid function below.
def isValid(s):
a=Counter(s)
val=list(a.values())
res=Counter(val)
v=list(res.keys())
if len(s)==1 or (max(v)-min(v))==0:
return'YES'
elif len(v)<3 and ((max(v)-min(v)==1 and res.get(max(v))==1) or (min(v)==1 and res.get(min(v))==1)):
return 'YES'
else:
return'NO'
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
s = input()
result = isValid(s)
fptr.write(result + '\n')
fptr.close()
coming soon…
coming soon…
Like this article? Follow us on Facebook and LinkedIn. You can also subscribe to our Youtube Channel.
This post is in partner with CodingCart.