某企业算法题目,亲测试难度

Posted 指导毕业设计Monkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了某企业算法题目,亲测试难度相关的知识,希望对你有一定的参考价值。

描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。

输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。

示例1
输入:
hello nowcoder
复制
输出:
8
复制
说明:
最后一个单词为nowcoder,长度为8

       Scanner scan =   new Scanner(System.in);
//        String str = scan.nextString();
//        String str = scan.next();
        String str = scan.nextLine();
        if(str.length() > 5000)

            throw new RuntimeException("你的字符串长度大于5000");
        else
            String[] a = str.split(" ");
            int length = a[a.length -1].length();
            System.out.println(length);
        



或者直接逆向for循环输出。

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

数据范围:1≤n≤1000
输入描述:
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。

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

示例1
输入:
ABCabc
A
复制
输出:
2

直接复制到main函数执行就好:


   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();

        char ch = (char)br.read();
//        小写变大写 -32
        if(ch >= 'a' && ch <= 'z')
            ch-=32;
        

        String s1 = str.toUpperCase();
        char[] s = s1.toCharArray();
        int i=0;
        for(int j = 0;j <= s.length -1; j++)
            if(ch == (s[j]))
                i = i +1;
            
        
        System.out.println(i);

        

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

数据范围: 1≤n≤1000 ,输入的数字大小满足 1≤val≤500
输入描述:
第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。
输出描述:
输出多行,表示输入数据处理后的结果

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


public class hwod 
    public static void main(String[] args) 
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入生成随机数的个数:");
        Integer in = scan.nextInt();

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

        if (in >= 1 && in <= 1000) 
            for (int i = 0; i < in; i++)
                System.out.println("请输入你的生成的整数:");
                Integer j = scan.nextInt();
                set.add(j);


            
        

        List<Integer> list = new ArrayList<>(set);
        for (Integer i : list) 
            System.out.println(i);

        


    




这样不行,应该是内存占用多了。
第二种方法看到别人用这个TreeSet实现,去重和排序了

import java.util.*;

public class Main 
    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());
        

      

    







以上是关于某企业算法题目,亲测试难度的主要内容,如果未能解决你的问题,请参考以下文章

CSU OJ2151 集训难度

UVa 1471 Defense Lines 算法分析

Python二级测试:数据结构与算法

XidianOJ 1019 自然数的秘密

解题报告(十八)Codeforces - 数学题目泛做(难度:2000 ~ 3000 + )

Java判断某特殊字符串结尾的2种方法