隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          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系統

          • ¤易能協同辦公系統¤
          • 流程管理、知識管理、客戶關系管理、輔助辦公
          • ¤黃城網絡辦公系統3.0¤
          • B/S結構,適用于Intranet/Internet應用,實現無地域限制的全球辦公,具有郵件管理、業務管理、網絡硬盤、智能工作流等功能。

          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★ 閱讀(1898) 評論(0)  編輯  收藏 所屬分類: 算法總結
          主站蜘蛛池模板: 中宁县| 旬阳县| 抚宁县| 睢宁县| 红桥区| 讷河市| 宣恩县| 武宁县| 林芝县| 沧州市| 阿城市| 连江县| 云和县| 庆安县| 浦东新区| 蒲江县| 夏邑县| 武胜县| 金坛市| 禄丰县| 河津市| 琼中| 德安县| 苏尼特右旗| 望奎县| 民勤县| 什邡市| 健康| 溆浦县| 彰化县| 义乌市| 嘉鱼县| 大竹县| 曲松县| 柞水县| 达拉特旗| 邯郸市| 黑河市| 三门县| 灌南县| 乌拉特前旗|