乐趣区

Leetcode-PHP题解D81-520-Detect-Capital

D81 520. Detect Capital

题目链接

520. Detect Capital

题目分析

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

思路

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

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

最终代码

<?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;
                                                                                                                                                                    }
                                                                                                                                                                    }
                                                                                                                                                                
                                                                                                                                                                若觉得本文章对你有用,欢迎用 [爱发电](https://afdian.net/@skys215) 资助。
退出移动版