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国需要的土地编号a_i

接下来一行q个整数,空格隔开,第i个整数代表B国需要的土地编号b_i

土地编号从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);
    }
}

 

posted @ 2021-07-19 10:49  菅兮徽音  阅读(274)  评论(0编辑  收藏  举报