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:

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…