[問題] C的字串處理問題

看板C_and_CPP作者 (蘆洲小飛俠)時間12年前 (2012/01/02 11:32), 編輯推噓2(208)
留言10則, 6人參與, 最新討論串1/1
題目是找出輸入字串最多的前後對稱性段落,並且印出來 範例如下 在DOS輸入main a333313333b1210 結果:333313333 輸入main 1aba2 結果:aba 輸入main a123454321xyz 結果:123454321 輸入main 8aaaaaa454321xyz 結果:aaaaa 輸入main 1234567654321 結果:1234567654321 輸入main abcd 結果: 感謝各位大大的指教 目前K了些資料了解迴文的定義了 目前進度寫了一段CODE可以判斷輸入字串是否是迴文 #include<stdio.h> #include<string.h> int main(int argc,char **argv) { int a, b; int L = strlen(argv[1]), L2 = L/2; for(a = 0, b = L-1; a <= L2; a++, b--) if(argv[1][a] != argv[1][b]) break; if(a == L2+1) puts("yes"); else puts("no"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.68.99 ※ 編輯: davieweb 來自: 220.133.68.99 (01/02 15:08) ※ 編輯: davieweb 來自: 220.133.68.99 (01/02 15:09)

01/02 15:57, , 1F
有限定回文數一樣時的先後順序嗎?若有就是a 沒有就a/b/c/d
01/02 15:57, 1F

01/02 15:58, , 2F
皆可
01/02 15:58, 2F

01/02 16:01, , 3F
沒有 只要跟範例的結果一樣就可以了...
01/02 16:01, 3F

01/02 17:15, , 4F
觀察...都是奇數個的回文,若有兩個相同長度呢?
01/02 17:15, 4F

01/02 17:16, , 5F
請問回文最少需要3個字?
01/02 17:16, 5F

01/02 18:16, , 6F
最簡單的,用暴力法...
01/02 18:16, 6F

01/02 19:33, , 7F
google 最長回文子字串....
01/02 19:33, 7F

01/02 21:32, , 8F
最生猛的解法是利用 a+reverse(a) 的 suffix array
01/02 21:32, 8F

01/02 22:16, , 9F
最神奇的是O(n)的解法~~
01/02 22:16, 9F

01/02 22:23, , 10F
有n的啊...
01/02 22:23, 10F
※ 編輯: davieweb 來自: 220.133.68.99 (01/02 22:26)
文章代碼(AID): #1F0ILB8D (C_and_CPP)