Re: [閒聊] 每日leetcode

看板Marginalman作者 (是oin的說)時間1年前 (2024/09/20 19:52), 編輯推噓5(506)
留言11則, 6人參與, 1年前最新討論串885/1548 (看更多)
題目 家最少的字符 讓s變成回文 思路 把s翻轉之後 用hash記每一種前綴 然後用翻轉後的去找 有對上的話就代表可以是回文 但是這樣會炸記憶體 所以失敗 思路2 我用半個下午學了KMP 又機掰又詭異又複雜的演算法 一樣是翻轉之後 用原本的字串匹配翻轉後的字串 因為是從後面來 要注意一下 然後用KMP來找 找到底之後 還剩下的字符就是需要加上去的字符 太難了吧 幹 class Solution { public: vector<int> next; int n ; void benext(string s) { int i = 0; int p = 1; while(p < n) { if(s[i] == s[p]) { i++; next[p] = i; p++; } else if (i == 0) { next[p] = 0; p++; } else { i = next[i-1]; } } } string shortestPalindrome(string s) { string rev = s ; reverse(rev.begin() , rev.end()); n = s.size(); next.resize(n,0); benext(s); int i = 0 ; int j = 0; while(i < n) { if(rev[i] == s[j]) { i++; j++; } else if(j>0) { j = next[j-1]; } else { i++; } if(j == n)break; } string res ; res = s; reverse(res.begin() , res.end()); for( ; j < n ; j ++) { res.push_back(s[j]); } return res; } }; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.162.42 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1726833143.A.675.html

09/20 19:54, 1年前 , 1F
KMP又啥 怎麼那麼多奇怪的算法 哇哇嗚嗚嗚
09/20 19:54, 1F

09/20 19:54, 1年前 , 2F
我寫到想死
09/20 19:54, 2F

09/20 19:56, 1年前 , 3F
大師
09/20 19:56, 3F

09/20 19:56, 1年前 , 4F
回文就是y f ^x
09/20 19:56, 4F

09/20 19:57, 1年前 , 5F
小c 你的笑話是跟逼威力學來的嗎 超好笑的欸xd
09/20 19:57, 5F

09/20 20:00, 1年前 , 6F
死了嗎
09/20 20:00, 6F

09/20 20:13, 1年前 , 7F
差低
09/20 20:13, 7F

09/20 20:15, 1年前 , 8F
kmp很好玩ㄟ==
09/20 20:15, 8F

09/20 20:15, 1年前 , 9F
hash可以 On
09/20 20:15, 9F

09/20 20:15, 1年前 , 10F
suffix lca 好像也可以 還沒看懂
09/20 20:15, 10F

09/20 20:27, 1年前 , 11F
hash記憶體會有點問題 我就試試看kmp了
09/20 20:27, 11F
文章代碼(AID): #1cxM7tPr (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cxM7tPr (Marginalman)