『百日百题 · 基础篇』备战面试,坚持刷题 第十话——String与包装类!

本专栏『百日百题』长期更新,一起加入本刷题计划,一起成长吧!

文章目录

  • 前言
  • JAVA29 动态字符串【String】
  • JAVA30 统计字符串中字母出现次数【String】
  • JAVA31 十进制数转二进制数【包装类】
  • JAVA32 掷骰子游戏【包装类】
  • 结语


前言

怎么样刷题?

有些同学喜欢上来就是干,上来就是终极难度的题目,觉得自己只要做出最难的,其它的就迎刃而解了。这种急于求成的思想要不得。

算法训练是一个系统工程,需要循序渐进,太过于急功近利,反而容易因做不出难题而产生挫败感,带来反效果。

记得我有一个同事就做了次类似的事情。我当时刚听说有牛客网,就想上去试试,他上去后就挑了一道困难里面还属于比较难的题目,结果想了大半天也没做出来,搞到自己特别沮丧。

你会发现这种做法效率很低,那道题目就算被做出来了,也不代表就可以解出其它的题目。

合理的做法是循序渐进。

我的建议是先刷一遍基础语法题,打好基础在进一步刷算法题,这样首先对这个语言的基础语法和常用API是绝对没有问题的,在后面刷算法题的时候也肯定会事半功倍的!

本专栏文章即将带你从基础语法到高级算法,循序渐进持续练习,加入刷题计划一起加油吧!


对于刷题这里我推荐牛客网如果你对相应语言的基础语法已经比较自信了那你也可以刷算法题,这里牛客网对算法题的难度分类也是很棒的,有入门题,面试必刷题,面试高频题等等。如果基础比较差那么也不用担心,牛客网上面也有基础语法题来帮助你更好地学习基础。

为了方便刷题我直接把牛客网的链接放在下面,大家点击蓝色字体就可以直接进行跳转刷题了!

传送门:刷题入口

『百日百题 · 基础篇』备战面试,坚持刷题 第十话——String与包装类!_第1张图片

专栏文章即将带你从基础语法到高级算法,循序渐进持续练习,加入刷题计划一起加油吧!


JAVA29 动态字符串【String】

题目:
『百日百题 · 基础篇』备战面试,坚持刷题 第十话——String与包装类!_第2张图片
题解:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
         //用原字符串创建可改变的字符串 
        StringBuilder newstr = new StringBuilder(str);
         //从末尾开始,三个三个遍历
        for(int i = str.length() - 3; i >= 0; i -= 3){
         //插入逗号
           newstr.insert(i, ',');
        }
        //转变成String类输出
        System.out.println(newstr.toString()); 
    }
}

JAVA30 统计字符串中字母出现次数【String】

题目:
『百日百题 · 基础篇』备战面试,坚持刷题 第十话——String与包装类!_第3张图片
题解:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String string = "H e l l o ! n o w c o d e r";
        Scanner scanner= new Scanner(System.in);
        String word = scanner.next();
        scanner.close();
        System.out.println(check(string, word));
    }
    public static int check(String str,String word){
        return str.length() - str.replace(word,"").length();
    }
}

JAVA31 十进制数转二进制数【包装类】

题目:
『百日百题 · 基础篇』备战面试,坚持刷题 第十话——String与包装类!_第4张图片
题解:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        fun(num);
    }
    public static void fun(int tar) {
        int temb = tar / 2;
        int temp = tar % 2;
        if(temb >= 1){
            fun(temb);
        }
        System.out.print(temp);
    }
}

相关知识:

// %d表示将整数格式化为10进制整数
System.out.printf("%d", num);
// %o表示将整数格式化为8进制整数
System.out.printf("%o", num);
// %x表示将整数格式化为16进制整数
System.out.printf("%x", num);
// %X表示将整数格式化为16进制整数,并且字母变成大写形式
System.out.printf("%X", num);

JAVA32 掷骰子游戏【包装类】

题目:
『百日百题 · 基础篇』备战面试,坚持刷题 第十话——String与包装类!_第5张图片
题解:

import java.util.Random;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
         	//输入随机数种子
            int seed = scanner.nextInt();
            //用随机种子进行随机算法
            Random random = new Random(seed); 
            //随机生成1-6地数字
            System.out.println(random.nextInt(6) + 1); 
        }
    }
}

结语

为了方便刷题我直接把刷题网站的链接放在下面,大家点击蓝色字体就可以直接进行跳转刷题了!

传送门:刷题神器

刷题这件事,大家一定要认真起来,不可懈怠!

日积月累,方成大器!

你可能感兴趣的:(百日百题,面试,java,算法)