<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ALL is Well!

    敏捷是一條很長的路,摸索著前進(jìn)著

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      30 隨筆 :: 23 文章 :: 71 評(píng)論 :: 0 Trackbacks

    題目要求:

    用Java設(shè)計(jì)一個(gè)程序,實(shí)現(xiàn)一個(gè)字符串的對(duì)稱個(gè)數(shù),如字符串"effeghg",有"ff","effe","ghg"這三個(gè)對(duì)稱字符,所以返回3.

     

    我實(shí)現(xiàn)的思路就是遍歷這個(gè)字符串,

    先選定頭位置為第一個(gè)字符,然后從最后向前遍歷這個(gè)字符串,

    頭尾兩個(gè)字符相同,則取中間字符串,進(jìn)行遞歸。

    遞歸結(jié)束后得到結(jié)果,

    繼續(xù)將頭向后推1位,然后再從字符串最后向前遍歷,

    如此循環(huán),當(dāng)尾等于頭時(shí),退出最外層循環(huán),輸出結(jié)果。

     

    具體實(shí)現(xiàn):

    /** 
     * 
    @author bzwm 
     *  
     
    */
     
    public class FindSymmetryStr 
        
    /** 
         * 找出字符串中對(duì)稱的子字符串的個(gè)數(shù) 
         * 
    @param orgStr 
         * 
    @return 
         
    */
     
        
    public static int findSymmetryStr(String orgStr) 
            
    //結(jié)果初始化 
            int count = 0

            
    //當(dāng)輸入字符串不為null且長度大于1時(shí)進(jìn)行查找,否則直接返回0 
            if (orgStr != null && orgStr.length() > 1
                
    //得到輸入字符串的長度 
                int size = orgStr.length(); 
                
    //字符串的頭字符索引 
                int head; 
                
    //字符串從后向前遍歷時(shí)的"尾"字符索引,即當(dāng)前字符索引 
                int current; 
                
    //字符串的頭字符 
                char hStr; 
                
    //字符串從后向前遍歷時(shí)的"尾"字符 
                char cStr; 

                
    //從前開始遍歷字符串 
                for (head = 0; head < size; head++
                    
    //取得頭字符 
                    hStr = orgStr.charAt(head); 
                    
    //指向輸入字符串的最后 
                    current = size - 1
                    
    //當(dāng)尾字符索引等于頭字符索引時(shí)退出循環(huán) 
                    while (current > head) 
                        
    //取得尾字符 
                        cStr = orgStr.charAt(current); 
                        
    //如果頭尾字符相等,則繼續(xù)判斷 
                        if (hStr == cStr) 
                            
    //取出頭尾中間的子字符串,對(duì)其進(jìn)行分析 
                            String newStr = orgStr.substring(head + 1, current); 
                            
    //如果此子字符串的長度大于1,則進(jìn)行遞歸 
                            if (newStr.length() > 1
                                
    //遞歸得到此子字符串中對(duì)稱的字符串個(gè)數(shù) 
                                count += findSymmetryStr(newStr); 
                            
    //如果此子字符串只有1個(gè)或0個(gè)字符,則表明原頭尾字符和此單個(gè)字符組成對(duì)稱字符串 
                            else 
                                count
    ++
                            
    //將尾字符索引向前推1位 
                            current--

                        }
     
                        
    //如果頭尾字符不相等,則將尾字符索引向前推1位 
                        else 
                            current
    --
                        }
     
                    }
     
                }
     
            }
     

            
    return count; 
        }
     

        
    //測(cè)試程序 
        public static void main(String args[]) 
            
    int count = findSymmetryStr("cddcbcbeffeghg");// 
            System.out.println("symmetry string count is : " + count); 
        }
     
    }


    ----2008年12月22日
    posted on 2010-09-01 11:13 李 明 閱讀(2202) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲精品国产高清不卡在线| 337p欧洲亚洲大胆艺术| 91视频免费观看| 亚洲一级片在线播放| 色吊丝最新永久免费观看网站 | 免费国产人做人视频在线观看| 一级视频免费观看| 亚洲高清视频在线播放| 在线不卡免费视频| 成人黄网站片免费视频| 亚洲精品无AMM毛片| 亚洲一区无码中文字幕| 久久久久国色AV免费看图片 | 日韩精品久久久久久免费| 亚洲老熟女五十路老熟女bbw| 亚洲色婷婷综合久久| 好先生在线观看免费播放| 中文字幕免费播放| 亚洲日韩国产AV无码无码精品| 亚洲免费人成在线视频观看| 成人爽A毛片免费看| 免费人成激情视频在线观看冫 | 久久精品国产亚洲AV嫖农村妇女| 免费观看的av毛片的网站| a级毛片免费全部播放| 亚洲精华国产精华精华液| 亚洲永久永久永久永久永久精品| 免费一级毛片在级播放| 久久天天躁狠狠躁夜夜免费观看| 国产在线观看免费av站| 久久精品国产亚洲av天美18| 亚洲色图.com| 久久精品国产亚洲综合色| 四虎永久免费影院| 日韩精品无码区免费专区| 91在线免费视频| 免费国产黄网站在线观看动图 | 国产成人无码免费网站| 亚洲乱亚洲乱妇24p| 亚洲电影在线播放| 国产成人精品日本亚洲|