检查首字符非数字且所有字符为字母、数字或下划线,判断 C 标识符合法性。
OJ: noi_openjudge
题目 ID: ch0107-06
难度:入门
标签:字符串条件判断python
日期: 2026-07-30 23:01
题意
判断非保留字字符串是否是合法 C 标识符。
思路
首字符不能是数字;所有字符必须满足 isalnum() 或为下划线。两个条件同时成立才输出 yes。
代码
Python代码
python
identifier = input().strip()
is_valid = not identifier[0].isdigit() and all(character.isalnum() or character == "_" for character in identifier)
print("yes" if is_valid else "no")C++代码
cpp
#include <cstdio>
#include <cstring>
#define maxn 500
int n;
char str[maxn];
int main(){
scanf("%s",str+1);
int i;
int len = strlen(str+1);
if( str[1] >= '0' && str[1] <='9'){
printf("no");
return 0;
}
for (i=1;i<=len;i++){
char c = str[i];
if( (c >= 'a' && c <='z' ) || (c >='A' && c <='Z') || c== '_' || ( str[i] >= '0' && str[i] <='9'))
;
else{
printf("no");
return 0;
}
}
printf("yes");
return 0;
}复杂度
时间复杂度为
总结
标识符判定可拆成“首字符规则”和“全体字符规则”。