Тоже забавная задачка — со «сломанной клавиатурой». Решил в ней Arrays.binarySearch
использовать для поиска буквы слова в наборе «сломанных клавишей», да и чтобы не забыть о его (метода) существовании в целом.
Судя по статистике — нормально получилось, в общем-то.
class Solution {
public int canBeTypedWords(String text, String brokenLetters) {
var brL = brokenLetters.toCharArray();
Arrays.sort(brL);
var words = text.split(" ");
int canTypeCnt = 0;
for (var word : words) {
boolean canType = true;
for (int i = 0; i < word.length(); i++) {
if (Arrays.binarySearch(brL, word.charAt(i)) >= 0) {
canType = false;
break;
}
}
if (canType) {
canTypeCnt++;
}
}
return canTypeCnt;
}
}
Success: Runtime:2 ms, faster than 91.93% of Java online submissions. Memory Usage:42.7 MB, less than 23.23% of Java online submissions.
То же решение на гитхабе.
There is a malfunctioning keyboard where some letter keys do not work. All other keys on the keyboard work properly. Given a string text of words separated by a single space (no leading or trailing spaces) and a string brokenLetters of all distinct letter keys that are broken, return the number of words in text you can fully type using this keyboard.
https://leetcode.com/problems/maximum-number-of-words-you-can-type/