给定一个字符串,输出所有指定长度为n的子串,没有则输出-1
strs = raw_input() n = input() if len(strs)< n or n<0: print -1 else: for i in range(len(strs)-n+1): print strs[i:i+n],
//穷举 字符串 // stringObject.slice(start,end) //一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符 //-1 指字符串的最后一个字符 const readline = require('readline') const rl = readline.createInterface({ input: process.stdin, ouput: process.stdout }) let inArr = [] rl.on('line',line=>{ if(!line) return inArr.push(line) if(inArr.length === 2){ let s = inArr[0] let n = +inArr[1] let res = [] if(s.length < n || s == '' || n<1){ console.log(-1) }else{ for (let i = 0; i <= s.length-n; i++) { res.push(s.slice(i,i+n)) } console.log(res.join(' ')) } } })
#include <iostream> #include <string> using namespace std; int main() { string str; int n; cin >> str>>n; if (n > str.size()) { cout << -1; } else { unsigned int i = 0; for (;i < str.size() - n;++i) { cout << str.substr(i, n) << ' '; } cout << str.substr(i, n); } system("pause"); return 0; }
#include <bits/stdc++.h> using namespace std; int main(){ string s; int n; while(cin>>s){ int l = s.length(); cin>>n; if(n>l || n<1) cout<<-1<<endl; else{ for(int i=0;i<=l-n;i++){ if(i==l-n) cout<<s.substr(i,n)<<endl; else cout<<s.substr(i,n)<<" "; } } } return 0; }
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void
split_string(string raw_string,
int dimension,
int offset,
int split_scale,
vector<string>& vs_capacity) {
if (offset + split_scale > dimension || offset > dimension || split_scale < 0)
return;
string sub_temp = raw_string.substr(offset, split_scale);
vs_capacity.push_back(sub_temp);
split_string(raw_string, dimension, offset + 1, split_scale, vs_capacity);
}
int main(int argc, char** argv) {
string input_string;
int split_scale;
cin >> input_string >> split_scale;
vector<string> vs_capacity;
split_string(input_string, input_string.length(), 0, split_scale, vs_capacity);
if (vs_capacity.size() <= 0)
cout << -1;
else {
for (int i = 0; i < vs_capacity.size(); i++)
cout << vs_capacity[i] << " ";
}
cout << endl;
return 0;
}
#include<stdio.h> #include<string.h> int main(){ char s[1000];int num=0; scanf("%s %d",&s,&num); int len=strlen(s); if(num>0&&num<=len){ for(int i=0;i<=len-num;i++){ for(int j=0;j<num;j++){ if(j+i>=len) break; printf("%c",s[i+j]); } printf(" "); } }else printf("-1"); }
#include<iostream> (720)#include<string> using namespace std; int main() { int N; string S; cin >> S; cin >> N; int j=0; if (N>0&&N<=S.length()) { for (int j = 0; j + N <=S.length() ; j++) { for (int i = j; i <j + N; i++) { cout << S[i]; } cout << " "; } } else { cout << -1 << endl; } system("pause"); return 0; }
s = input() n = int(input()) if n>len(s) or n<=0: print(-1) else: for i in range(len(s)-n+1): print(s[i:i+n], end=' ')
遍历输出就行了
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc =new Scanner(System.in);
String a = sc.nextLine();
int len = sc.nextInt();
sc.close();
if(a.length()<len||len<1){
System.out.print("-1");
return;
}
for(int i=0;i<=a.length()-len;i++){
System.out.print(a.substring(i,i+len)+" ");
}
}
}
#include<stdio.h> #include<string.h> int main(){ char word[100]; int num; scanf("%s",word); scanf("%d",&num); int len = strlen(word); if(num > len) printf("-1"); else for(int i = 0; i <= len - num; i++){ for(int j = 0; j < num; j++){ printf("%c",word[i+j]); } printf(" "); } return 0; }