首页 > 试题广场 >

验证字符串

[编程题]验证字符串
  • 热度指数:517 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
 给定一个字符串 S,如果 S 满足以下要求中的任意一个则返回 true,否则返回 false:
1. 全部都是大写字母,比如 "BILIBILI"
2. 全部都是小写字母,比如 "bilibili"
3. 首字母大写,比如 "Bilibili"


输入描述:
输入为字符串,且只包含英文字母。


输出描述:
输出为 true 或则 false
示例1

输入

bilibili

输出

true
示例2

输入

BiliBili

输出

false
num = input() if num.islower() or num.isupper() or num.istitle(): print('true') else: print('false')
用python更简单吧
发表于 2020-07-27 15:38:23 回复(1)
正则表达式
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
  public static void main(String args[]) throws IOException{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    String str=null;
    while((str=br.readLine())!=null){
      if(str.matches("[a-z]+")||str.matches("[A-Z]+")||str.matches("^[A-Z][a-z]+")){
        System.out.println("true");
      }else{
        System.out.println("false");
      }
    }
  }
}

发表于 2020-08-19 10:22:56 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        char[] cs=null;
        int upNum=0;
        int lowNum=0;
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String str=in.next();
            cs=str.toCharArray();
        }
        for(int i=0;i<cs.length;i++){
            if(isUpper(cs[i])){
                upNum++;
            }
            else{
                lowNum++;
            }
        }
        if(upNum==0||lowNum==0){
            System.out.println("true");
        }else{
            if(upNum==1&&isUpper(cs[0])){
                System.out.println("true");
            }
            else{
                System.out.println("false");
            }
        }
       
        in.close();
    }
    public static boolean isUpper(char c){
        if(c>='a'&&c<='z'){
            return false;
        }
        else{
            return true;
        }
    }
}
发表于 2023-03-26 20:11:58 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        Boolean flag1=true;//全大写判定
        Boolean flag2=true;//全小写判定
        Boolean flag3=true;//首字母大写判定
        if (input.charAt(0) < 'A' || input.charAt(0) > 'Z') {
            flag3=false;
        }
        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (c < 'A' || c > 'Z') {//小写
                flag1 = false;
            } else {//大写
                flag2=false;
                if (i>0)flag3=false;
            }
            if (!(flag1 || flag2 || flag3)) {
                System.out.println(false);
                return;
            }
        }
        System.out.println(true);

    }
}

发表于 2020-08-13 16:15:26 回复(0)
#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin>>s;
    int ans = 1;
    for(int i = 0; i < s.size(); i++){
        if(s[i] <= 'z' && s[i]>= 'a') ans = 1;
        else{
            ans = 0;
            break;
        }
    }
    if(ans==0){
        for(int i = 0; i < s.size(); i++){
        if(s[i] <= 'Z' && s[i]>= 'A') ans = 1;
        else{
            ans = 0;
            break;
        }
    }
    }
     
    if(ans==0&&s[0]>='A'&&s[0] <= 'Z'){
        for(int i = 1; i < s.size(); i++){
        if(s[i] <= 'z' && s[i]>= 'a') ans = 1;
        else{
            ans = 0;
            break;
        }
    }
    }
    if(ans == 1) cout<<"true"<<endl;
    else cout<<"false"<<endl;
     
}

发表于 2020-07-22 23:16:51 回复(0)
import java.util.Scanner;
 
/**
 * 题目描述:
 * 给定一个字符串 S,如果 S 满足以下要求中的任意一个则返回 true,否则返回 false:
 * 1. 全部都是大写字母,比如 "BILIBILI"
 * 2. 全部都是小写字母,比如 "bilibili"
 * 3. 首字母大写,比如 "Bilibili"
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuilder str = new StringBuilder();
        while (sc.hasNext()) {
            str.append(sc.nextLine());
        }
        //判断是否合法
        System.out.println(isFlag(str));
    }
 
    //判断是否符合规则
    private static boolean isFlag(StringBuilder str) {
        //字符串为空
        if (str == null)
            return false;
        //只有一个字符
        if(str.length() == 1)
            return true;
        //有两个字符且首字符为大写字母
        if(str.length() == 2 && str.charAt(0) >= 'A' && str.charAt(0) <= 'Z')
            return true;
        //字符串全部为小写情况
        if (str.charAt(0) >= 'a' && str.charAt(0) <= 'z') {
            for (int i = 1; i < str.length(); i++) {
                if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z')
                    continue;
                else
                    return false;
            }
            return true;
        }
        //多个字符且首字符为大写字母
        if (str.charAt(0) >= 'A' && str.charAt(0) <= 'Z') {
            if (str.charAt(1) >= 'A' && str.charAt(1) <= 'Z') {
                for (int i = 2; i < str.length(); i++) {
                    if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z')
                        continue;
                    else
                        return false;
                }
                return true;
            }else {
                if (str.charAt(1) >= 'a' && str.charAt(1) <= 'z')
                    for (int i = 2; i < str.length(); i++) {
                        if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z')
                            continue;
                        else
                            return false;
                    }
                return true;
            }
        }
        return false;
    }
}

发表于 2020-07-03 11:39:32 回复(0)
num = input()
if num.islower()&nbs***bsp;num.isupper()&nbs***bsp;num.istitle():
    print('true')
else:
    print('false')

发表于 2020-06-25 21:41:00 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] arg){
        Scanner in = new Scanner(System.in);
        char[] read = in.nextLine().toCharArray();
        boolean flag = (read[0]>='A') && (read[0]<='Z');
        
        //第一个为小写,则说明合法字符串全部是小写
        if(!flag){
            //当剩余字符串中出现大写时,返回false
        for(int i=1;i<read.length;i++){
            if(read[i]<'a' || read[i]>'z'){
                System.out.println("false");
                return;
            }
        }
                System.out.println("true");
        }
        //第一个字符是大写
        else{
            
            boolean big = false;
            boolean small = false;
            for(int i=1;i<read.length;i++){
                if(read[i]>='a' && read[i]<='z'){
                    small =true;
                }
                if(read[i]>='A' && read[i]<='Z'){
                    big = true;
                }
            }
            //若全部大写,则big==true,small==false;
            //若全部大写,则big==false,small==true;
            //若非法,则big==true,small == true;
            if(big && small){
                System.out.println("false");
            }else{
                System.out.println("true");
            }
        }
 
    }
}
暴力求解
发表于 2020-03-23 01:26:37 回复(0)