HJ4 字符串分隔

134 阅读2分钟

Problem: HJ2 计算某字符出现次数

题目描述

描述

  • 输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
  • 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(每个字符串长度小于等于100)

输出描述:

依次输出所有分割后的长度为8的新字符串

示例1

输入:abc
输出:abc00000

解题思路

将字符串分割为字符数组,并且全部转为大写,并循环。

算法流程

  1. 导入 java.util.Scanner 类,用于读取用户输入。
  2. 创建一个 Scanner 对象 in,用于接收用户输入。
  3. 使用 while 循环,判断是否还有输入数据。
  4. 使用 in.nextLine() 方法读取一行用户输入,并将其存储在字符串变量 s 中。
  5. 如果 s 的长度不是8的倍数,通过添加零来使其成为8的倍数,即 s = s + "000"
  6. 打印输出字符串 s
  7. 循环继续,等待下一次用户输入。

代码

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        // 注意 hasNext 和 hasNextLine 的区别
        String word = in.nextLine().toUpperCase();
        String cha = in.nextLine().toUpperCase();
        int count = 0;
        for(int i = 0; i < word.length(); i++) {
            if(word.charAt(i) == cha.charAt(0)) count++;
        }
        System.out.print(count);
    }
}

复杂度

  • 时间复杂度:

添加时间复杂度, 示例: O(n)O(n)

  • 读取用户输入的时间复杂度为 O(1),因为每次只读取一行输入。
  • 循环遍历用户输入的时间复杂度为 O(n),其中 n 是用户输入的字符数。
  • 打印输出的时间复杂度为 O(1),因为每次只打印一行输出。
  • 空间复杂度:

添加空间复杂度, 示例: O(n)O(n)

  • 创建了一个 Scanner 对象和一个字符串变量,它们的空间复杂度为 O(1)。
  • 用户输入的字符串变量的空间复杂度为 O(n),其中 n 是用户输入的字符数。