列表

详情


MGJ7. 输出指定长度子串

描述

给定一个字符串,输出所有指定长度为n的子串,没有则输出-1

输入描述

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

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

输出描述

输出所有长度为n的子串,如“12345”,“23456”,“34567”,“45678”,“56789”

示例1

输入:

123456789
5

输出:

12345 23456 34567 45678 56789

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 348KB, 提交时间: 2019-10-25

#include<stdio.h>
#include<string.h> 
int main()
{
    char s[1000];
    int n;
    scanf("%s",&s);
    scanf("%d",&n);
    int len=strlen(s);
    if(n>len||n<=0)
    {
        printf("%d",-1);
        return 0;
    }
    for(int i=0;i<len-n+1;i++)
    {
        for(int j=i;j<n+i;j++)
        {
            printf("%c",s[j]);
        }
        printf(" ");
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 352KB, 提交时间: 2020-04-18

#include<stdio.h>
#include<string.h> 
int main()
{
    char s[1000];
    int n;
    scanf("%s",&s);
    scanf("%d",&n);
    int len=strlen(s);
    if(n>len||n<=0)
    {
        printf("%d",-1);
        return 0;
    }
    for(int i=0;i<len-n+1;i++)
    {
        for(int j=i;j<n+i;j++)
        {
            printf("%c",s[j]);
        }
        printf(" ");
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2020-04-18

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAXV 1000
char s[MAXV];
int main() {
    //freopen("input.txt", "r", stdin);
    scanf("%s", s);
    int n;
    scanf("%d",&n);
    int l=strlen(s);
    if(n>l||n<1)
        printf("-1");
    else{
      for(int i=0;i<=l-n;i++){
        if(i>0)
            printf(" ");
        for(int j=i;j<i+n;j++)
            printf("%c",s[j]);

      }



    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2019-09-03

#include<stdio.h>
int main()
{
    char a[1000];
    int n,i,j;
    scanf("%s",a);
    scanf("%d",&n);
    int len;
    len = strlen(a);
    if(n>len||n<0)
    {
        printf("-1");
    }
    for(i=0;i<len-n+1;i++)
    {
        for(j=i;j<n+i;j++)
            printf("%c",a[j]);
        printf(" ");
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 360KB, 提交时间: 2020-05-20

#include<stdio.h>
#include<string.h> 
int main()
{
    char s[1000];
    int n;
    scanf("%s",&s);
    scanf("%d",&n);
    int len=strlen(s);
    if(n>len||n<=0)
    {
        printf("%d",-1);
        return 0;
    }
    for(int i=0;i<len-n+1;i++)
    {
        for(int j=i;j<n+i;j++)
        {
            printf("%c",s[j]);
        }
        printf(" ");
    }
    return 0;
}

上一题