IT技術小屋

          秋風秋雨,皆入我心

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評論 :: 0 Trackbacks

          刪除字符串中的“b”和“ac”,需要滿足如下的條件:
          1. 字符串只能遍歷一次
          2. 不能夠實用額外的空間

          例如:
          1. acbac   ==>  ""
          2. aaac    ==>  aa
          3. ababac  ==>   aa
          4. bbbbd   ==>   d
          5. aaccac  ==> ""

           1 public class Solution {
           2     public String deleteChars(String s) {
           3         StringBuffer sb = new StringBuffer(s);
           4         int fast = 0, slow = -1;
           5         int length = s.length();
           6         while (fast < length) {
           7             if (sb.charAt(fast) == 'b') {
           8                 fast++;
           9             } else if (fast < length - 1 && sb.charAt(fast) == 'a' && sb.charAt(fast + 1) == 'c') {
          10                 fast += 2;
          11             } else {
          12                 sb.setCharAt(++slow, sb.charAt(fast++));
          13                 if (slow > 0 && sb.charAt(slow - 1) == 'a' && sb.charAt(slow) == 'c') {
          14                     slow -= 2;
          15                 }
          16             }
          17         }
          18         return sb.substring(0, slow + 1);
          19     }
          20 }


          posted on 2013-12-28 11:02 Meng Lee 閱讀(121) 評論(0)  編輯  收藏 所屬分類: 待字閨中
          主站蜘蛛池模板: 克什克腾旗| 永济市| 卓尼县| 漯河市| 中阳县| 成都市| 临安市| 石狮市| 永德县| 鹤山市| 陆丰市| 曲阜市| 德庆县| 夹江县| 湛江市| 安陆市| 胶州市| 青岛市| 英吉沙县| 汉阴县| 两当县| 道孚县| 大丰市| 长治县| 雷波县| 赤壁市| 乌兰察布市| 句容市| 开平市| 宁陵县| 庆安县| 织金县| 迭部县| 蒙阴县| 兴和县| 随州市| 安顺市| 阜新市| 鹰潭市| 鞍山市| 深州市|