520. Detect Capital

LeetCode easy original: C# #csharp #easy #leetcode #string
선택한 UI 언어에 맞게 문제 텍스트를 러시아어에서 번역합니다. 코드는 변경하지 않습니다.

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

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

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

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

Дана 문자열 word. return 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++ 해법

자동 초안, 제출 전 검토
#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]*.

😎

Vacancies for this task

활성 채용 with overlapping task tags are 표시됨.

전체 채용
아직 활성 채용이 없습니다.