LeetCode第520题---检测大写字母

题目描述

给定一个单词,你需要判断单词的大写使用是否正确。

我们定义,在以下情况时,单词的大写用法是正确的:

全部字母都是大写,比如"USA"。
单词中所有字母都不是大写,比如"leetcode"。
如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。
否则,我们定义这个单词没有正确使用大写字母。

示例 1:

输入: “USA”
输出: True
示例 2:

输入: “FlaG”
输出: False

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/detect-capital
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路及代码

class Solution {
    public boolean detectCapitalUse(String word) {
        
		 /**
		  * 遍历每一个字符,
		  * 首字母大写,全部大写或者全部小写返回true
		  * 首字母小写,后面出现大写返回false 
		  */
		 if(word.length()==1){
			 return true;
		 }
		 char c=word.charAt(0);
		 
		 //首字母大写true,小写false
		 boolean first=c>'Z'?false:true;
		 boolean next=word.charAt(1)>'Z'?false:true;
		 for(int i=1;i<word.length();i++){
			 c=word.charAt(i);
			 //第一个大写,后面就得全部大写或者小写
			 if(first){
				 /**
				  * 后面的全大写全小写可以用和或来表示
				  * 当 next && 后面小写 结果为1时,返回false
				  * 当 !next && 后面大写 结果为1时,返回false
				  */
				 //首字母为大写(next==1),后面为小写(&&前面为1)
				 if( (word.charAt(i)>'Z') && next){
					 return false;
				 }
				 //首字母为小写(!next==1),后面为大写(||后面部分为1)
				 if(!next && word.charAt(i) <= 'Z'){
					 return false;
				 } 
				 
			 }else{
				 //第一个小写,后面就得全部小写
				 if(c<='Z'){
					 return false;
				 }
				 
			 }
			 
		 }

		 //上面都是false的情况,这里都是true的情况
		 return true;
    }
}

总结

对于使用true和false来判断题目内容时,
&& 一般使用 true
|| 一把使用false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值