首页 > 试题广场 >

输出指定长度子串

[编程题]输出指定长度子串
  • 热度指数:5932 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个字符串,输出所有指定长度为n的子串,没有则输出-1

输入描述:
输入第一行一个字符串,如:“1234567890”

输入第二行一个数字是n,如5


输出描述:
输出所有长度为n的子串,如“12345”,“23456”,“34567”,“45678”,“56789”
示例1

输入

123456789
5

输出

12345 23456 34567 45678 56789
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s=in.next();
        int n=in.nextInt();
        if(n<=0||n>s.length()) System.out.println(-1);
        else{
            for(int i=0,j=n;j<=s.length();i++,j++){
                System.out.printf("%s ",s.substring(i,j));
            }
        }
    }
}

发表于 2023-09-05 22:34:09 回复(0)
太BT了,根本就没考虑n是非正整数的情况,疯狂报错非法访问🤣
import java.io.*;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int n = Integer.parseInt(br.readLine());
        if(str.length() < n || n <= 0){
            System.out.println("-1");
            return;
        }
        for(int i = 0;i <= str.length()-n;i++){
            if(i == str.length()-n){
                System.out.print(str.substring(i) + " ");
            }else{
                System.out.print(str.substring(i,i+n) + " ");
            }
        }
    }
}


发表于 2020-04-11 11:17:32 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        int n = scanner.nextInt();
        int len = str.length();
        // n小于等于0也输出-1
        if (n > len || n <= 0) {
            System.out.println(-1);
        } else {
            System.out.print(str.substring(0, n));
            for (int i = 1; i <= len - n; i++) {
                System.out.print(" " + str.substring(i, i + n));
            }
        }
    }
}
发表于 2019-07-03 16:44:31 回复(0)