码迷,mamicode.com
首页 > 其他好文 > 详细

Solution 25: 最长连续数字子串

时间:2015-07-10 10:46:11      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

问题描述

在字符串中找出连续最长的数字串,并将该串返回。(略有修改)

 

解决思路

双指针法。一前一后,注意保存最长连续数字串的开始或者结束位置和最长串的长度,最后返回该子串即可。

 

程序

public class LongestContinuousDigits {
	public String getLCD(String s) {
		if (s == null || s.length() == 0) {
			return null;
		}

		int i = 0, j = 0;
		int maxLen = 0, len = 0, idx = 0;

		while (j < s.length()) {
			if (!(s.charAt(j) >= ‘0‘ && s.charAt(j) <= ‘9‘)) {
				i = j;
				len = 0;
			}
			else if (!(s.charAt(i) >= ‘0‘ && s.charAt(i) <= ‘9‘)) {
				// find the first character
				i = j;
				len = 1;
			}
			else {
				if (s.charAt(j) == s.charAt(i) + 1) {
					// continuous digits string
					++i;
					++len;
				} else {
					len = 0;
					i = j;
				}
			}
			if (len > maxLen) {
				maxLen = len;
				idx = j;
			}
			++j;
		}

		return s.substring(idx - maxLen + 1, idx + 1);
	}
}

  

Solution 25: 最长连续数字子串

标签:

原文地址:http://www.cnblogs.com/harrygogo/p/4634867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!