1.验证密码复杂性
题目大意:验证输入的密码是否符合复杂性规则
1.要求满足少于八位
2.有数字
3.有小写字母
4.有大写字母
5.有特殊字符
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while(input.hasNext()){
String psw = input.next();
if(isOk(psw)){
System.out.println("Ok");
}else{
System.out.println("Irregular password");
}
}
}
public static boolean isOk(String psw){
if(psw.length()<8)
return false;
boolean rule1=true,rule2=true,rule3=true,rule4=true;
for(char c:psw.toCharArray()){
if(c>='0' && c<='9')
rule1=false;
else if(c>='a'&& c<='z')
rule2=false;
else if(c>='A'&& c<='Z')
rule3=false;
else if(c>=0 && c<=127)
rule4=false;
if(!rule1 && !rule2 && !rule3 && !rule4)
return true;
}
return false;
}
}
2.黑白翻转
题目大意:n个棋子(<10^18),q次输入,每次输入两个数start、end,翻转[start,end]区间内棋子颜色,黑变白,白变黑。初始都为黑,每反转一轮输出一次黑子个数。难点在会卡int,卡时间。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
long n =input.nextLong();
int q=input.nextInt();
ArrayList<Long> list = new ArrayList<>();
for(int i =0;i<q;i++) {
long start=input.nextLong()-1;
long end=input.nextLong();
list.add(start);
list.add(end);
Collections.sort(list);
long result=n;
int size=list.size();
for(int j=0;j<size-1;j++) {
if(j%2==0) {
long temp = list.get(j+1)-list.get(j);
result=result-temp;
}
}
System.out.println(result);
}
}
}