算法:输出给定字符串的全部连续子串

题目来源:

阿里实习生电话面试题目:http://blog.csdn.net/ns_code/article/details/21043665

题目描述:

给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。

思路:

逐步扫描,逐渐输出步长分别为0,1,2,3的子字符串

/*
 * $filename: Test.java,v $
 * $Date: 2014-3-12  $
 * Copyright (C) ZhengHaibo, Inc. All rights reserved.
 * This software is Made by Zhenghaibo.
 */
package edu.njupt.zhb;
/*
 *@author: ZhengHaibo  
 *web:     http://blog.csdn.net/nuptboyzhb
 *mail:    zhb931706659@126.com
 *2014-3-12  Nanjing,njupt,China
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		displaySubstring("abcdefg");
	}
	public static void displaySubstring(String str){
		for(int k=0;k<str.length();k++){//控制步长
			for(int i=0;i<str.length()-k;i++){//对字符串逐步扫描
				for(int j=i;j<i+k+1;j++){//输出扫描的起始点及以后的k个元素
					System.out.print(str.charAt(j));
				}
				System.out.print('\t');
			}
		}
	}

}

运行结果:

a	b	c	d	e	f	g	ab	bc	cd	de	ef	fg	abc	bcd	cde	def	efg	abcd	bcde	cdef	defg	abcde	bcdef	cdefg	abcdef	bcdefg	abcdefg	


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值