File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed
src/hackerrank/interview_preparation_kit/string_manipulation Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -15,19 +15,21 @@ def is_valid(word: str) -> bool:
15
15
string_map [letter ] = 1 + string_map .get (letter , 0 )
16
16
17
17
frequencies = Counter (string_map .values ())
18
- frequencies = dict (sorted (frequencies .items (), key = lambda x : x [1 ]))
19
18
frequencies_size = len (frequencies )
20
19
21
20
if frequencies_size == 1 :
22
21
return True
23
22
24
23
if frequencies_size == 2 :
24
+ frequencies = dict (sorted (frequencies .items (), key = lambda x : x [1 ]))
25
25
frequencies_list = list (frequencies .keys ())
26
26
27
- if frequencies [frequencies_list [0 ]] == 1 \
28
- and (
29
- frequencies_list [0 ] - 1 == 0
30
- or frequencies_list [0 ] - 1 == frequencies_list [1 ]):
27
+ minor_freq = frequencies_list [0 ]
28
+ major_freq = frequencies_list [1 ]
29
+ tolerance = 1
30
+
31
+ if frequencies [minor_freq ] == tolerance \
32
+ and tolerance in {minor_freq , (minor_freq - major_freq )}:
31
33
return True
32
34
33
35
return False
You can’t perform that action at this time.
0 commit comments