給定乙個字串 s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。
示例 1:
輸入: 「aacecaaa」
輸出: 「aaacecaaa」
示例 2:
輸入: 「abcd」
輸出: 「dcbabcd」
把要處理的字元分成回文串和非回文串,再將非回文串逆置加到頭部。要注意,已經移動出最長回文串邊界的情況,這種情況就需要遞迴處理了。
**:
class
solution
if(i == n)
return s;
string remain_rev = s.
substr
(i, n)
;reverse
(remain_rev.
begin()
, remain_rev.
end())
;//為什麼要遞迴,因為i可能已經移動出了最長字串的範圍
return remain_rev +
shortestpalindrome
(s.substr(0
, i)
)+ s.
substr
(i);
//ababbcefbbaba}}
;
力扣這個題和網易的c++筆試題第乙個類似,只是乙個是在前面插入,乙個是在後面插入。
#include
using
namespace std;
int a[20]
;int suffixsum[20]
;int n;
int minloss;
void
dfs(
int first,
int second,
int cost,
int index)
if(first == second)
minloss =
min(minloss, suffixsum[index]
+ cost);if
(abs
(first - second)
> suffixsum[index]
)return
;// 給first,給second,扔掉
dfs(first + a[index]
, second, cost, index +1)
;dfs
(first, second + a[index]
, cost, index +1)
;dfs
(first, second, cost + a[index]
, index +1)
;}intmain
(int argc,
char
const
*ar**)
return0;
}
dp解法:
#include
using
namespace std;
#define endl '\n'
typedef
long
long ll;
typedef pair p;
const
int inf=
0xffffffff
;int dp[20]
[1500005];
intmain()
dp[0]
[0]=
0;for(
int i=
1;i<=n;i++)}
printf
("%d\n"
,sum-dp[n][0
]);}
return0;
}
思路:
#include
#include
#include
#include
using
namespace std;
intgetmincost
(vector<
int>a, vector<
int>b)
return dp.
back()
;}string gettime
(int cost)
string sh =
to_string
(h);
if(sh.
size()
<
2) sh =
"0"+ sh;
string sm =
to_string
(m);
if(sm.
size()
<
2) sm =
"0"+ sm;
string ss =
to_string
(s);
if(ss.
size()
<
2) ss =
"0"+ ss;
return sh +
":"+ sm +
":"+ ss +
" "+
(flag ?
"pm"
:"am");
}int
main()
}
ps: dp真的是需要多多練習啊 網易2021秋招演算法筆試排隊問題(python)
題目 現在有n個人排隊買票,已知早上8點開始賣,每個人有兩種買法,單獨買第i個人花費a i 秒 和後面乙個人一起買,第i和第i 1個人一共花費b i 秒。求最早什麼時候可以結束排隊 輸入2 樣例組數 2 排隊人數 20 25 a i 40 b i 1 排隊人數 8 a i 輸出08 00 40 am...
2021網易秋招筆試題(Android開發)
校招的筆試題通常是4道程式設計題,時間為2個小時,每題25分。2021秋招筆試題總結如下,包含問題和 實現。解析 這個很簡單,用python的話只需要用dict統計出每個單詞的個數然後計算出頻率大於1 的單詞,儲存輸出。用dict統計數字 如下 d key d.get key,0 1 d是字典型別的...
2021秋招部分筆試題
2021秋招部分筆試題彙總 企業提供原題 00 00 28 4 6 程式設計題 查詢二叉搜尋樹的葉子節點 時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 給乙個二叉查詢樹 binary search tree 的前序遍歷結果陣列,列印出所有的葉子節點。輸入描述 輸入為...