Can Convert String in K Moves LeetCode solution in Java

1
class Solution {
2
public boolean canConvertString(String s, String t, int k) {
3
// if strings lengths not equal return false
4
if (s.length() != t.length()) return false;
5
// array to count number of times a difference can repeat
6
int b[] = new int[26];
7
int h = k / 26;
8
int h1 = k % 26;
9
// count of each number from 1 to 26 from 1 to k
10
for (int i = 0; i < 26; i++) {
11
b[i] += h;
12
if (i <= h1) b[i]++;
13
}
14

15
int i = 0;
16
while (i < s.length()) {
17
// if both characters equal increment i
18
if (s.charAt(i) == t.charAt(i)) {
19
i++;
20
} else {
21
// else now find difference
22
// +26 because we dont know it can be negative also and again mod with 26
23
int diff = ((t.charAt(i) - s.charAt(i)) + 26) % 26;
24
// decrement count after usage of one value of b[diff]
25
b[diff]--;
26
// if b[diff]<0 means over usage than given so return false
27
if (b[diff] < 0) return false;
28
// else finally increment
29
else i++;
30
}
31
}
32
return true;
33
}
34
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0