JAVA 牛客acm练习题记录
1.在小美的国家,任何一篇由英文字母组成的文章中,如果大小写字母的数量不相同会被认为文章不优雅。
现在,小美写了一篇文章,并且交给小团来修改。小美希望文章中的大小写字母数量相同,所以她想让小团帮她把某些小写字母改成对应的大写字母,或者把某些大写字母改成对应的小写字母,使得文章变得优雅。
小美给出的文章一定是由偶数长度组成的,她想知道最少修改多少个字母,才能让文章优雅。
输入描述:
输入包含一个字符串S,仅包含大写字母和小写字母
输出描述:
输出包含一个整数,即最少需要修改的字符数。
输入例子1:
AAAb
输出例子1:
1
例子说明1:
修改为AaAb即可,也有其他两种修改方法:aAAb,AAab
import java.util.Scanner; import static java.lang.Math.abs; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); int cap = 0,low = 0; for(int i=0;i<str.length();i++){ if(Character.isUpperCase(str.charAt(i)) == true){ cap++; }else{ low++; } } System.out.println((int)(0.5*abs(cap-low))); } }
2.
A国和B国正在打仗,他们的目的是n块土地。现在,A国和B国暂时休战,为了能合理分配这一些土地,AB国开始协商。
A国希望得到这n块土地中的p块土地,B国希望得到这n块土地中的q块土地。每个国家都将自己希望得到的土地编号告诉了小团和小美——两位战争调和人。
你需要帮小团和小美计算,有多少块土地是只有A国想要的,有多少块土地是只有B国想要的,有多少块土地是两个国家都想要的。
输入描述:
输入第一行包含三个整数n,p,q,含义如题意所示
接下来一行p个整数,空格隔开,第i个整数代表A国需要的土地编号
接下来一行q个整数,空格隔开,第i个整数代表B国需要的土地编号
土地编号从q开始,n结束。
输出描述:
输出包含三个数,只有A国想要的土地数,只有B国想要的土地数,两个国家都想要的土地数。
输入例子1:
5 3 3 1 2 3 3 4 5
输出例子1:
2 2 1
例子说明1:
1,2号土地只有A想要,4,5号土地只有B想要,3号土地都想要
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int p = sc.nextInt(); int q = sc.nextInt(); int[] A = new int[p]; int[] B = new int[q]; sc.nextLine(); for(int i=0;i<p;i++){ A[i] = sc.nextInt(); } sc.nextLine(); for(int i=0;i<q;i++){ B[i] = sc.nextInt(); } int[] count = new int[n]; int countA = 0,countB = 0,bothAB = 0; for(int i=0;i<p;i++){ count[A[i]-1]+=1; } for(int i=0;i<q;i++){ count[B[i]-1]-=2; } for(int num:count){ if(num==1) { countA++; }else if(num==-1){ bothAB++; }else if(num==-2){ countB++; }else{ continue; } } System.out.println(countA+" "+countB+" "+bothAB); } }