HJ2 计算某字符出现次数 、 HJ3 明明的随机数

HJ2 计算某字符出现次数

描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

数据范围: 1≤𝑛≤1000 1≤n≤1000

输入描述:

第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例:

输入:ABCabc
	 A
输出:2

 

分析:

​ 1.判断字符是大写还是小写字母,将字符串转成对应的大小写。

​ 2.再判断字符串中字符出现多少次。

 

代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        if(str.length()<1 || str.length()>1000){
            System.out.println("非法输入!");
            return;
        }
        char c=sc.next().charAt(0);
        if(c==32){
            System.out.println("非法输入!");
            return;
        }
        if(c>='A'&& c<='Z'){
            str=str.toUpperCase();
        }else if(c>='a'&& c<='z'){
            str=str.toLowerCase();
        }
        int count=0;
        for (int i = 0; i < str.length(); i++) {
            if(c==str.charAt(i)){
                count++;
            }
        }
        System.out.println(count);
    }
}

 
 

大佬代码:

使用字符串的replaceAll方法把字符串中的字符消除掉。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str =sc.nextLine().toLowerCase();
        String s = sc.nextLine().toLowerCase();
        System.out.print(str.length()-str.replaceAll(s,"").length());
    }
}

 
 

跟我的写的差不多,优化了。

import java.util.Scanner;
 
public class Main{
    public static void main(String[] args){
        //标准输入
        Scanner sc=new Scanner(System.in);
        //输入字符串
        String s=sc.nextLine().toLowerCase();
        //输入字符
        char c=sc.next().toLowerCase().charAt(0);
        //计数
        int count=0;
        for(int i=0;i<s.length();i++){
            //如果出现的指定的字符,计数加一
            if(s.charAt(i)-c==0){
                count++;
            }
        }
        System.out.println(count);
    }
}

 
 
 

HJ3 明明的随机数

描述

明明生成了𝑁N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

数据范围: 1≤𝑛≤1000 1≤n≤1000 ,输入的数字大小满足 1≤𝑣𝑎𝑙≤500 1≤val≤500

输入描述:

第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。

输出描述:

输出多行,表示输入数据处理后的结果

示例:

输入:3
	 2
	 2
	 1
输出:1
	 2

说明:输入解释:
	第一个数字是3,也即这个小样例的N=3,说明用计算机生成了3个1到500之间的随机整数,接下来每行一个随机数字,共3行,也即这3个随机数字为:
	 2
	 2
	 1
	 所以样例的输出为:
	 1
	 2       

 

分析:

​ 1.使用HashSet集合存储数据达到去重的效果。

​ 2.使用Arrays.sort()方法排序。

 
 
 

代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);

        int n=sc.nextInt();
        if(n<1&&n>1000){
            System.out.println("非法输入!");
            return;
        }

        HashSet<Integer> set=new HashSet<>();

        for (int i = 0; i < n; i++) {
            set.add(sc.nextInt());
        }

        //把set集合转成数组
        Integer[] arr=new Integer[set.size()];
        set.toArray(arr);
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

 
 
 

大佬代码:

使用TreeSet集合!!!我不记得了!!

TreeSet集合可以自然排序。

import java.util.*;
 
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //获取个数
        int num = sc.nextInt();
        //创建TreeSet进行去重排序
        TreeSet set = new TreeSet();
        //输入
        for(int i =0 ; i < num ;i++){
            set.add(sc.nextInt());
        }
 
        //输出
        Iterator iterator = set.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}

 
 
 

  1. 创建一个1001个数字的数组,在输入一个1-1000的数字时将改数组对应下标的值改为1。
  2. 然后再从小到大循环数组中值为1的下标输出,因为下标本身有序的因此就不用排序。
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    while (scanner.hasNext()) {
        int num = scanner.nextInt();
        int[] arr = new int[1001];
        for (int i = 0; i < num; i++) {
            int n = scanner.nextInt();
            arr[n] = 1;
        }
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] == 1) {
                System.out.println(i);
            }
        }
    }
}

 
 
 

普通的写法。

import java.util.Scanner;
import java.util.Arrays;
 
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            int count = in.nextInt();    //随机数总数
            int[] data = new int[count];
            for(int i=0; i < count; i++)    //读入生成的随机数
                data[i] = in.nextInt();
             
            Arrays.sort(data);    //使用库函数排序
            System.out.println(data[0]);    //打印排序后的第一个数(必不重复)
            for(int i=1; i < count; i++){    //打印其他数字,需与前面数字比较,不重复才能打印
                if(data[i] != data[i-1])
                    System.out.println(data[i]);
            }
        }
    }
}

相关推荐

  1. HJ2 计算字符出现次数 、 HJ3 明明随机数

    2024-07-12 02:38:04       22 阅读
  2. 华为机考:HJ2 计算字符出现次数

    2024-07-12 02:38:04       44 阅读
  3. HJ3 明明随机数

    2024-07-12 02:38:04       35 阅读
  4. 计算字符出现次数【C语言】

    2024-07-12 02:38:04       51 阅读
  5. HJ14 字符串排序

    2024-07-12 02:38:04       51 阅读
  6. python经典百题之计算字符串中子串出现次数

    2024-07-12 02:38:04       31 阅读
  7. C语言练习百题之计算字符串中子串出现次数

    2024-07-12 02:38:04       35 阅读
  8. 【C++】字符串出现次数

    2024-07-12 02:38:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 02:38:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 02:38:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 02:38:04       57 阅读
  4. Python语言-面向对象

    2024-07-12 02:38:04       68 阅读

热门阅读

  1. 什么是Stream流

    2024-07-12 02:38:04       21 阅读
  2. playwright下载文件如何不被删除

    2024-07-12 02:38:04       17 阅读
  3. c#中的超时终止

    2024-07-12 02:38:04       18 阅读
  4. 归并排序算法Python实现

    2024-07-12 02:38:04       22 阅读
  5. 07-7.4.2 B+树

    2024-07-12 02:38:04       19 阅读
  6. 生信技能52 - VCF文件hg38与hg19坐标相互转换

    2024-07-12 02:38:04       20 阅读
  7. 技术总结(1)——方向与成长思考

    2024-07-12 02:38:04       23 阅读
  8. 《穿透财报:读懂财报中的逻辑与陷阱》

    2024-07-12 02:38:04       21 阅读
  9. Spring——自动装配Bean

    2024-07-12 02:38:04       21 阅读
  10. 前端高頻面試題(一)

    2024-07-12 02:38:04       22 阅读
  11. SpringBoot常见注解

    2024-07-12 02:38:04       19 阅读
  12. linux lvm使用

    2024-07-12 02:38:04       20 阅读
  13. ETag:Springboot接口如何添加Tag

    2024-07-12 02:38:04       22 阅读
  14. 3. 排序算法代码-python

    2024-07-12 02:38:04       23 阅读
  15. android 图片轮播

    2024-07-12 02:38:04       19 阅读
  16. ubuntu 检查硬盘的通电时长、健康度

    2024-07-12 02:38:04       24 阅读