打字(java)
最近找工作需要笔试,做了几道题练习一下,赛码网这个题答案的通过率是9%,因此我自己记录一下自己写的答案。用java实现。
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int countLine=cin.nextInt();
for (int i=0;i<countLine;i++){
//记录当前是大写还是小写0代表小写1代表大写
int flag=0;
//记录次数
int count=0;
String s=cin.next();
for (int j=0;j<s.length();j++){
//判断是大写还是小写
if (s.charAt(j)>='A' && s.charAt(j)<='Z'){
//判断当前键盘是大写状态还是小写状态
if (flag==0){
//判断当前要写的位置的下一位是否超过长度
if ((j+1)<s.length()){
//判断下一位是大写还是小写,如果和当前要写的位置相同那当前位置采用CapsLock更换大小写状态,否则使用shift+字母直接输入。
if (s.charAt(j+1)>='A' && s.charAt(j+1)<='Z'){
count+=2;
flag=1;
}else {
count+=2;
}
}else {
count+=2;
}
}else {
count++;
}
}else if (s.charAt(j)>='a' && s.charAt(j)<='z'){
if (flag==0){
count++;
}else {
if ((j+1)<s.length()){
if (s.charAt(j+1)>='a' && s.charAt(j+1)<='z'){
count+=2;
flag=0;
}else {
count+=2;
}
}else {
count+=2;
}
}
}else {
count++;
}
}
System.out.println(count);
}
}
}