520. Detect Capital
Мы определяем правильное использование заглавных букв в слове, когда выполняется одно из следующих условий:
Все буквы в этом слове заглавные, как "USA".
Все буквы в этом слове строчные, как "leetcode".
Только первая буква в этом слове заглавная, как "Google".
Дана string word. return true, если использование заглавных букв в ней правильное.
Exemplo:
Input: word = "USA"
Output: true
C# solução
correspondente/originalusing System.Text.RegularExpressions;
public class Solution {
public bool DetectCapitalUse(string word) {
string pattern = @"[A-Z]*|.[a-z]*";
return Regex.IsMatch(word, pattern);
}
}
C++ solução
rascunho automático, revisar antes de enviar#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public bool DetectCapitalUse(string word) {
string pattern = @"[A-Z]*|.[a-z]*";
return Regex.IsMatch(word, pattern);
}
}
Java solução
correspondente/originalimport java.util.regex.*;
class Solution {
public boolean detectCapitalUse(String word) {
String pattern = "[A-Z]*|.[a-z]*";
return Pattern.matches(pattern, word);
}
}
JavaScript solução
correspondente/originalvar detectCapitalUse = function(word) {
let pattern = /^[A-Z]*$|^[a-z]*$|^[A-Z][a-z]*$/;
return pattern.test(word);
};
Python solução
correspondente/originalimport re
class Solution:
def detectCapitalUse(self, word: str) -> bool:
return re.fullmatch(r"[A-Z]*|.[a-z]*", word) is not None
Go solução
correspondente/originalimport (
"regexp"
)
func detectCapitalUse(word string) bool {
pattern := "^[A-Z]*$|^[a-z]*$|^[A-Z][a-z]*$"
match, _ := regexp.MatchString(pattern, word)
return match
}
Algorithm
Шаблон для первого случая в регулярном выражении: [A-Z]*, где [A-Z] соответствует одной заглавной букве от 'A' до 'Z', а * означает повторение предыдущего шаблона 0 или более раз. Этот шаблон представляет "Все заглавные буквы".
Шаблон для второго случая в регулярном выражении: [a-z]*, где [a-z] соответствует одной строчной букве от 'a' до 'z'. Этот шаблон представляет "Все строчные буквы". Шаблон для третьего случая в регулярном выражении: [A-Z][a-z]*, где первая буква заглавная, а остальные строчные.
Объедините эти три шаблона: [A-Z]*|[a-z]*|[A-Z][a-z]*, где | означает "или". Мы можем объединить второй и третий случай, получив . [a-z]*, где . соответствует любому символу. Итоговый шаблон: [A-Z]*|.[a-z]*.
😎
Vacancies for this task
vagas ativas with overlapping task tags are mostradas.