Aha! Algorithms - Stack

《啊哈!算法》第 2 章第 2 節(jié)徒爹,棧的 Swift 實現(xiàn)。

問題

判斷字符串是否回文

解決

將字符串前半部分入棧芋类,然后依次出棧隆嗅,與后半部分字符一一比對。

var stk = ""
let str = "xybyx"
let len = str.characters.count
let mid = len / 2 - 1 //字符串中點索引值

var next: Int

var top = 0 //棧的初始化侯繁,0表示棧中為空

//將 mid 前的字符依次入棧
for i in 0...mid {
    let c = str[str.index(str.startIndex, offsetBy: i)]
    stk = stk + String(c)
    top += 1 //每添加一個字符串 top + 1
}
print("\(stk)")

//判斷字符串長度是奇數(shù)還是偶數(shù)胖喳,找出mid之后進行匹配的起始索引值
next = (len % 2 == 0) ? mid + 1 : mid + 2

//依次出棧,逐一對比 mid 后的字符
for i in next...(len - 1) {
    let s = stk[stk.index(stk.startIndex, offsetBy: top-1)]
    let a = str[str.index(str.startIndex, offsetBy: i)]
    print("s:\(s), a:\(a)")
    if s != a {
        break
    }
    top -= 1
}

//如果 top 為 0 說明棧內(nèi)所有字符都被一一匹配了
print("\(top==0)")

代碼在 GitHub

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贮竟,一起剝皮案震驚了整個濱河市丽焊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坝锰,老刑警劉巖粹懒,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異顷级,居然都是意外死亡凫乖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門弓颈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帽芽,“玉大人,你說我怎么就攤上這事翔冀〉冀郑” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵纤子,是天一觀的道長搬瑰。 經(jīng)常有香客問我款票,道長,這世上最難降的妖魔是什么泽论? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任艾少,我火速辦了婚禮,結(jié)果婚禮上翼悴,老公的妹妹穿的比我還像新娘缚够。我一直安慰自己,他們只是感情好鹦赎,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布谍椅。 她就那樣靜靜地躺著,像睡著了一般古话。 火紅的嫁衣襯著肌膚如雪雏吭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天煞额,我揣著相機與錄音思恐,去河邊找鬼沾谜。 笑死膊毁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的基跑。 我是一名探鬼主播婚温,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼媳否!你這毒婦竟也來了栅螟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤篱竭,失蹤者是張志新(化名)和其女友劉穎力图,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掺逼,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡吃媒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吕喘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赘那。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖氯质,靈堂內(nèi)的尸體忽然破棺而出募舟,到底是詐尸還是另有隱情,我是刑警寧澤闻察,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布拱礁,位于F島的核電站琢锋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏呢灶。R本人自食惡果不足惜吩蔑,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望填抬。 院中可真熱鬧烛芬,春花似錦、人聲如沸飒责。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宏蛉。三九已至遣臼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拾并,已是汗流浹背揍堰。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嗅义,地道東北人屏歹。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像之碗,于是被迫代替她去往敵國和親蝙眶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

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

  • 1.把二元查找樹轉(zhuǎn)變成排序的雙向鏈表 題目: 輸入一棵二元查找樹褪那,將該二元查找樹轉(zhuǎn)換成一個排序的雙向鏈表幽纷。 要求不...
    曲終人散Li閱讀 3,294評論 0 19
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件博敬、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評論 4 62
  • 韓信找到趙云的時候友浸,后者背對他坐在尸堆上,盔甲殘敗血跡遍身偏窝,撐著長槍呆愣著不知在想些什么收恢。 他張張嘴沒等出聲,趙云...
    拙生九歌閱讀 2,404評論 0 4
  • ——關(guān)鍵是讀過書你學(xué)到了什么囚枪,是否30分鐘讀完不重要 BY劉安娜160718 有小伙伴在群里問為什么要做筆記派诬,說讀...
    進擊的劉安娜閱讀 4,688評論 8 55
  • 有多少人為了眼前放棄自己的明天 有多少人為了明天又在扼殺今天 有多少人為了今天寄生給了欺騙 有多少人欺騙只為了換取...
    常袖閱讀 269評論 0 0