描述:
给定一篇由大写字母、小写字母、逗号、句号组成的文章,求使文章不合法的字母数。
文章不合法有2种情况:
1.句子的第一个字母用了小写。
2.不是单词的首字母用了大写。
代码实现(Java):
public int count(String s) {
// Write your code here.
boolean st = true;
int ans = 0;
for (int i = 0; i < s.length(); i++) {
// 1. 判断句子的第一个字母不能使用小写
if (st && s.charAt(i) >= 'a' && s.charAt(i) <= 'z') {
ans++;
}
if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z' || s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
st = false;
}
if (s.charAt(i) == '.') st = true;
// 2. 不是单词的首字母不能用大写
if (i > 0 && (s.charAt(i - 1) >= 'a' && s.charAt(i - 1) <= 'z' || s.charAt(i - 1) >= 'A' && s.charAt(i - 1) <= 'Z') && s.charAt(i) >= 'A' &&
s.charAt(i) <= 'Z') {
ans++;
}
}
return ans;
}