随笔 - 71  文章 - 15  trackbacks - 0
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

因为口渴,上帝创造了水;
因为黑暗,上帝创造了火;
因为我需要朋友,所以上帝让你来到我身边
Click for Shaanxi xi'an, Shaanxi Forecast
╱◥█◣
  |田|田|
╬╬╬╬╬╬╬╬╬╬╬
If only I have such a house!
〖总在爬山 所以艰辛〗
Email:myesjoy@yahoo.com.cn
NickName:yesjoy
MSN:myesjoy@hotmail.com
QQ:150230516

〖总在寻梦 所以苦痛〗

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

文章档案

Hibernate在线

Java友情

Java认证

linux经典

OA系统

Spring在线

Structs在线

专家专栏

企业信息化

大型设备共享系统

工作流

工作流产品

网上购书

搜索

  •  

最新评论

阅读排行榜

评论排行榜

给定某一长度的字符串,请找出其中由相同字符连接而成的最长字符串,
并已"字母,长度"的形式返回。
比如"axxxbbbbxxxxxdd"其中由相同字符连接而成的最长字符串为xxxxx,则返回"x,5".
如果出现由不同字符构成的长度相同的字符串,则返回先出现的。
比如"aaabbbcc",返回"a,3".

包名:无
类名:SequenceFinder
方法签名:public String find(String message)
其中给定的message仅由字符'a'-'z'构成,message长度为1-40

class StringProcessing
{
 
static String getSubEqualString(String sourceString)
 {
  
int stringLength=sourceString.length();//取得字符串的长度。
  
//从最长的子串(长度为stringlength的子串)开始检查,再检查第二长的子串
  
//(长度为stringlength-1的子串),依次检查到长度为2的子串。
  for(int i=1;i<stringLength;i++)
  {
   TESTNEXT:
for(int j=1;j<=i;j++)//遍历检查所有长度为(stringLength-i+1)的子串, 
   {
    
int subStart=j-1,subEnd=stringLength-i+1+subStart;//计算将进行检查的子串的起始位置和结束位置。
    String tempString=sourceString.substring(subStart,subEnd);//取得将要检查的子串。
    for(int k=0;k<tempString.length()-1;k++)
    {
     
//若相邻的两个字符不相等,则不符合要求,立即结束对此子串的检查。
     if(tempString.charAt(k)!=tempString.charAt(k+1)){continue TESTNEXT;}
    }
    
return tempString;//若子串的所有字符都相同,则此子串就是我们要找的最长相同子串。
   }
  }
  
return sourceString.substring(0,1);//如果没有长度为2的子串,则第一个字符就是最长子串了。
 }
}
public class tryequalstring
{
 
public static void main(String[] args)
 {
  System.out.println(
"aaabbbbbbcccddd"+":"+StringProcessing.getSubEqualString("aaabbbbbbcccddd"));
  System.out.println(
"aaabbbcccdddeee"+":"+StringProcessing.getSubEqualString("aaabbbcccdddeee"));
  System.out.println(
"abcdefghijklmno"+":"+StringProcessing.getSubEqualString("abcdefghijklmno"));
  System.out.println(
"bbbbbbbbbbbbbbb"+":"+StringProcessing.getSubEqualString("bbbbbbbbbbbbbbb"));
 }
}
//运行结果如下:
E:\java\ProgramJava\blog\io>javac tryequalstring.java
E:\java\ProgramJava\blog\io
>java tryequalstring
aaabbbbbbcccddd:bbbbbb
aaabbbcccdddeee:aaa
abcdefghijklmno:a
bbbbbbbbbbbbbbb:bbbbbbbbbbbbbbb
posted on 2006-02-19 16:00 ★yesjoy★ 阅读(1882) 评论(0)  编辑  收藏 所属分类: 算法总结

只有注册用户登录后才能发表评论。


网站导航: