字符串逆序和字符串元音逆序(leetcode344&&345)

題目描述1(344)

  • 給定一個(gè)字符串拴魄,寫(xiě)一個(gè)函數(shù)將其逆序輸出

題目描述2(345)

  • 給定一個(gè)字符串,寫(xiě)一個(gè)函數(shù)實(shí)現(xiàn)字符串中的原因字母逆序崖飘,其余的不變

解題思路(逆序)

  • 逆序就是一個(gè)遍歷的過(guò)程,然后不停的交換位置這是最直接暴力也應(yīng)該是最優(yōu)解法了(不包含采用語(yǔ)言本身的逆序輸出函數(shù))
  • JAVA操作需要將字符串先轉(zhuǎn)換為數(shù)組杈女,為了加快交換速度朱浴,我們將數(shù)組從兩邊同時(shí)開(kāi)始遍歷交換吊圾,當(dāng)low指針>high指針時(shí)完成遍歷

代碼1

class Solution {
    public String reverseString(String s) {
        char[] array = new char[s.length()];
        int low = 0, high = s.length()-1;
        while (low <= high) {
            array[low] = s.charAt(high);
            array[high] = s.charAt(low);
            high--;
            low++;
        }
        return new String(array);
    }
}

解題思路2(元音逆序)

  • 首先逆序思路大體和上述差不多,但是我們需要注意此時(shí)需要的是元音逆序翰蠢,那么low指針和high指針的指向必須是元音字母项乒,這就可以采用類似于快排的思想,在low指針一直用while查找到一個(gè)元音字母梁沧,再用high指針用while查找到一個(gè)元音字母將其交換順序檀何,然后進(jìn)行下一輪
  • 一直到low > high為止,在這個(gè)過(guò)程中需要注意數(shù)組越界的問(wèn)題廷支,和第一題相比多了一點(diǎn)條件
  • 時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(n)

源代碼2

class Solution {
    /*
    1. 首先將字符串轉(zhuǎn)換為字符數(shù)組频鉴,便于交換操作
    2. 根據(jù)提示,需要找出元音字母進(jìn)行交換恋拍,我們只需要找出對(duì)應(yīng)的下標(biāo)即可垛孔,可根據(jù)快排的思想,我們從兩邊分別開(kāi)始查找施敢。
    左邊查找到一個(gè)元音字母時(shí)周荐,然后再用while循環(huán)從右邊查找元音字母,此時(shí)將兩個(gè)元音字母交換就可完成逆序僵娃,依次進(jìn)行直到
    大小兩個(gè)指針相遇結(jié)束概作。
    3. 需要隨時(shí)注意下標(biāo)越界的情況,否則會(huì)報(bào)錯(cuò)
    4. 時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(n)
    */
    public String reverseVowels(String s) {
        if (s.length() == 0) return s;
        char[] array = s.toCharArray();
        int low = 0, high = s.length()-1;
        while (low <= high) {
            while (low <= s.length() - 1 && !isVowels(array[low])) low++;
            while (high >= 0 && !isVowels(array[high])) high--;
            if (low <= high) exch(array, low, high);
            low++;
            high--;
        }
        return new String(array);
    }
    
    private void exch(char[] array, int i, int j) {
        char temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    
    private boolean isVowels(char c) {
        if (c == 'a' || c == 'e' ||
            c == 'i' || c == 'o' ||
            c == 'A' || c == 'E' ||
            c == 'I' || c == 'O' ||
            c == 'u' || c == 'U') {
            return true;
        } else return false;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末默怨,一起剝皮案震驚了整個(gè)濱河市讯榕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌先壕,老刑警劉巖瘩扼,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異垃僚,居然都是意外死亡集绰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)谆棺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)栽燕,“玉大人,你說(shuō)我怎么就攤上這事改淑“恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵朵夏,是天一觀的道長(zhǎng)蔼啦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)仰猖,這世上最難降的妖魔是什么捏肢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任奈籽,我火速辦了婚禮,結(jié)果婚禮上鸵赫,老公的妹妹穿的比我還像新娘衣屏。我一直安慰自己,他們只是感情好辩棒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布狼忱。 她就那樣靜靜地躺著,像睡著了一般一睁。 火紅的嫁衣襯著肌膚如雪钻弄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天卖局,我揣著相機(jī)與錄音斧蜕,去河邊找鬼。 笑死砚偶,一個(gè)胖子當(dāng)著我的面吹牛批销,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播染坯,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼均芽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了单鹿?” 一聲冷哼從身側(cè)響起掀宋,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仲锄,沒(méi)想到半個(gè)月后劲妙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡儒喊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年镣奋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怀愧。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侨颈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芯义,到底是詐尸還是另有隱情哈垢,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布扛拨,位于F島的核電站耘分,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜陶贼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一啤贩、第九天 我趴在偏房一處隱蔽的房頂上張望待秃。 院中可真熱鬧拜秧,春花似錦、人聲如沸章郁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)暖庄。三九已至聊替,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間培廓,已是汗流浹背惹悄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肩钠,地道東北人腕侄。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親配喳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 算法思想貪心思想雙指針排序快速選擇堆排序桶排序荷蘭國(guó)旗問(wèn)題二分查找搜索BFSDFSBacktracking分治動(dòng)態(tài)...
    第六象限閱讀 3,065評(píng)論 0 0
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,219評(píng)論 0 4
  • 蒲公英模式也稱"蒲公英商業(yè)模式"或"分紅交易"翘县,是一種將舊書(shū)帜羊、舊報(bào)刊的循環(huán)再利用的多方獲利的一種商業(yè)模式洋腮,它以節(jié)能...
    哈嘍hello閱讀 385評(píng)論 0 0
  • 雨后不光是陽(yáng)光燦爛箫柳!還有破繭成蝶!
    璇璣_閱讀 220評(píng)論 0 1
  • 人的對(duì)一件事或人的自然反應(yīng)就能反映出這件事或人的重要性啥供,當(dāng)然它也有很重要重要之分悯恍。 你第一件想做的事情必定是在你心...
    我是阿酷閱讀 220評(píng)論 0 0