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

题目描述
给定一个字符串,输出所有指定长度为n的子串,没有则输出-1
输入描述
输入第一行一个字符串,如:“1234567890”
输入第二行一个数字是n,如5
输出描述
输出所有长度为n的子串,如“12345”,“23456”,“34567”,“45678”,“567890“
解题思路:从数据出发,123456789,n为5,输出结果则为12345 23456 34567 45678 56789,输出为5组数据,数据长度l为9,n为5,仔细看一下输出结果是5组,9-5+1=5组
5组是5次循环,里面的结构则是取5个数,5个一组输出需要判断一下,然后在打印输出
ok,看一下结果

s = input()
n = int(input())
l = len(s)
#首先判断特殊情况
if l < n:
	print(-1)
else:
	for k in range(l-n+1):#输出结果组数
		for i in range(n):#输出每组几个数
			print(s[i+k], end=' ')
			if (i+1) % n == 0:
				print(end=' ')
		
123456789
5
12345 23456 34567 45678 56789 
s = input().strip()
n = int(input())
if n > len(s) or n < 0:
	print(-1)
else:
	res = []
	i = 0
	while i + n -1 < len(s):
		res.append(s[i:i+n])
		i += 1
	print(' '.join(res))
123456789
5
12345 23456 34567 45678 56789
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值