520. Detect Capital

LeetCode easy оригинал: C# #csharp #easy #leetcode #string

Мы определяем правильное использование заглавных букв в слове, когда выполняется одно из следующих условий:

Все буквы в этом слове заглавные, как "USA".

Все буквы в этом слове строчные, как "leetcode".

Только первая буква в этом слове заглавная, как "Google".

Дана строка word. Верните true, если использование заглавных букв в ней правильное.

Пример:

Input: word = "USA"

Output: true

C# решение

сопоставлено/оригинал
using System.Text.RegularExpressions;
public class Solution {
    public bool DetectCapitalUse(string word) {
        string pattern = @"[A-Z]*|.[a-z]*";
        return Regex.IsMatch(word, pattern);
    }
}

C++ решение

auto-draft, проверить перед отправкой
#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 решение

сопоставлено/оригинал
import java.util.regex.*;

class Solution {
    public boolean detectCapitalUse(String word) {
        String pattern = "[A-Z]*|.[a-z]*";
        return Pattern.matches(pattern, word);
    }
}

JavaScript решение

сопоставлено/оригинал
var detectCapitalUse = function(word) {
    let pattern = /^[A-Z]*$|^[a-z]*$|^[A-Z][a-z]*$/;
    return pattern.test(word);
};

Python решение

сопоставлено/оригинал
import re

class Solution:
    def detectCapitalUse(self, word: str) -> bool:
        return re.fullmatch(r"[A-Z]*|.[a-z]*", word) is not None

Go решение

сопоставлено/оригинал
import (
    "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]*.

😎

Вакансии для этой задачи

Показаны активные вакансии с пересечением по тегам задачи.

Все вакансии
Активных вакансий пока нет.