Leetcode PHP题解--D81 520. Detect Capital

D81 520. Detect Capital

题目连接

520. Detect Capitalphp

题目分析

给定一个单词,判断其使用大写的方式正确与否。api

思路

若是给定单词是全大写或全小写的话,属于正确用法。
用array_count_values的结果和包含全大写或全小写的数组计算差集,结果为空集则说明为全大写或全小写。直接返回true便可。数组

除了全大写和全小写的状况外,只能出现首字母大写,其他字母小写的状况。
故咱们把第一个字符排除掉,再判断剩余字母是否为全小写。判断方法与前面相同。spa

最终代码

<?php
class Solution {

    /** * @param String $word * @return Boolean */
    function detectCapitalUse($word) {
        $wordArray = str_split($word);
        $uppercase = str_split('ABCDEFGHIJKLMNOPQRSTUVWXYZ');
        $lowercase = str_split('abcdefghijklmnopqrstuvwxyz');
       
        //all upper or lower case
        if(!array_diff_key(array_count_values($wordArray),array_flip($uppercase))
           ||!array_diff_key(array_count_values($wordArray),array_flip($lowercase))){
            return true;
        }
        //first letter whatever case,
        //rest of the string must be all lowercase
        array_shift($wordArray);
        if(!array_diff_key(array_count_values($wordArray),array_flip($lowercase))){
           return true; 
        }
        return false;
    }
}
复制代码

若以为本文章对你有用,欢迎用爱发电资助。.net

相关文章
相关标签/搜索