2020年6月29日 星期一
六月最後一周 σ`∀´)σ
因為還沒畢業的關係,投履歷的事情也是一拖再拖,真的怕還沒準備好就丟出去會白白浪費一次機會,可是工作也是先搶先贏,好兩難阿@@,越接近口試論文的比重就越多,已經很久沒碰自傳了,心煩~~阿哈哈
2020年6月24日 星期三
week 18 Happy Holiday~
4-day holiday , hope you'll have fun in the weekend!
我這個周末應該會很忙,OMGOMG (›´ω`‹ )
該逛個D-Lite了,看看有甚麼好玩的遊戲,紓壓一夏
要讓這個假期回憶滿滿,當然各種方面都要拉
我這個周末應該會很忙,OMGOMG (›´ω`‹ )
該逛個D-Lite了,看看有甚麼好玩的遊戲,紓壓一夏
要讓這個假期回憶滿滿,當然各種方面都要拉
2020年6月20日 星期六
LeetCode 20 Valid Parentheses
如果在程式競賽當下突然看到這一題,我應該就會用一大堆判斷式去硬解吧,不過看了提示後總算是有想法了(還是得看提示XD),Hint 1和 Hint 2 讓我覺得可以用二元搜尋樹或者Divide and Conquer解法,但是具體來說要怎麼用這兩種方式寫我還是不會,想到上次利用陣列解決回文那題就頭疼,下面C code是我參考Hint 2寫出來的,本來還想用malloc把還沒判斷的子句切出來,想想還是算了(苦笑),這個陣列元速移動方式還是我搜尋malloc,strcpy的過程中偶然發現的,感謝那篇文章的作者,ㄚㄚㄚ,這題是Easy,Hard無法想像,第14題到現在我都還卡著,可...可惡,我好笨,可是人家還是想繼續寫程式。゚ヽ(゚´Д`)ノ゚。。
Difficulty: Easy
Problem description is easy to understand, but there is lot of condition need to consider,
Fortunately, we have some example for reference.
My main idea is like hint 2, down below is C code answer.
bool isValid(char * s){
int i,j,flag;
int len=strlen(s);
if(len%2!=0) return 0;
else{
while(len!=0){
i=0,flag=0;
while(i<len-1){
j=i+1;
if((s[i]=='('&&s[j]==')')||(s[i]=='['&&s[j]==']')||(s[i]=='{'&&s[j]=='}')){
flag=1;
break;
}else{
i+=1;
}
}
if(flag==0) return flag;
for(;j<len-1;){
s[i]=s[j+1];
i+=1;
j+=1;
}
len-=2;
}
}
return flag;
}
Reference
https://www.programmingsimplified.com/c/source-code/c-program-delete-element-from-array
Difficulty: Easy
Problem description is easy to understand, but there is lot of condition need to consider,
Fortunately, we have some example for reference.
My main idea is like hint 2, down below is C code answer.
bool isValid(char * s){
int i,j,flag;
int len=strlen(s);
if(len%2!=0) return 0;
else{
while(len!=0){
i=0,flag=0;
while(i<len-1){
j=i+1;
if((s[i]=='('&&s[j]==')')||(s[i]=='['&&s[j]==']')||(s[i]=='{'&&s[j]=='}')){
flag=1;
break;
}else{
i+=1;
}
}
if(flag==0) return flag;
for(;j<len-1;){
s[i]=s[j+1];
i+=1;
j+=1;
}
len-=2;
}
}
return flag;
}
Reference
https://www.programmingsimplified.com/c/source-code/c-program-delete-element-from-array
2020年6月17日 星期三
week 17 吃吃吃
想一下這幾天都在幹嘛,禮拜六和同學見面,禮拜天幾乎都待在房間,禮拜一上班,禮拜二去圖書館,禮拜三去實驗室,今天早上來實驗室,下午準備去圖書館參加活動,恩@@,時間過得好快,論文有夠難修改的,不知道如何動筆,履歷自傳是根本沒時間碰,日常爆炸啦(っ・Д・)っ
2020年6月13日 星期六
LeetCode 5. Longest Palindromic Substring (*´▽`*)
本題難度為 medium,剛開始看到題目就傻住了,知道要用 Dynamic Programming 的解法,不然可能會超時,看一下台師大的演算法筆記,原來這種題目時間複雜度是O(N^4),例如 Uva 12473,參考中英文的資料後,用習慣的 C 語言,總算是把這題解出來了,大半夜我就懶得修程式碼了,等起床再把程式整理一下比較容易理解,這題算是很常見的題目,非常有趣,順便練習一下在函數裡回傳字串,最後感謝其他博主的心得分享,幫了我很多,晚安~
char * longestPalindrome(char * s){
int i,j,len;
len = strlen(s);
int maxlen;
int omaxlen=0;
int begin=0;
int array[1000][1000];
int llen;
for(i=0;i<1000;i++){
for(j=0;j<1000;j++){
if(i==j) array[i][j]=1;
else array[i][j]=0;
}
}
for(i=0;i<len-1;i++){
if(s[i]==s[i+1]){
array[i][i+1]=1;
maxlen=2;
if(maxlen>omaxlen){
omaxlen=maxlen;
begin=i;
}
}
}
for(llen=3;llen<=len;llen++){
for(i=0;i<len-llen+1;i++){
j=i+llen-1;
if(i+1>j-1){
if(array[i][j-1]==1 && s[i]==s[j]){
array[i][j]=1;
maxlen=j-i+1;
if(maxlen>omaxlen){
omaxlen=maxlen;
begin=i;
}
}else array[i][j]=0;
}else{
if(array[i+1][j-1]==1 && s[i]==s[j]){
array[i][j]=1;
maxlen=j-i+1;
// printf("%d %d %d\n",i,j,maxlen);
if(maxlen>omaxlen){
omaxlen=maxlen;
begin=i;
}
}else array[i][j]=0;
}
// printf("array[%d][%d]=%d\n",i,j,array[i][j]);
}
}
static char ans[1001];
memset(ans,0,1001);
// printf("%d\n%d\n",begin,omaxlen);
strncpy(ans,s+begin,omaxlen);
if(omaxlen==0) strncpy(ans,s,1);
if(len==1) return s;
else return ans;
}
參考資料:
[1] http://www.csie.ntnu.edu.tw/~u91029/Palindrome.html
[2] https://medium.com/@ChYuan/leetcode-no-322-longest-palindromic-substring-%E5%BF%83%E5%BE%97-medium-3ff9eff34230
[3] https://skylinelimit.blogspot.com/2018/02/c-2.html
[4] https://openhome.cc/Gossip/CGossip/StringLengthCopyCat.html
char * longestPalindrome(char * s){
int i,j,len;
len = strlen(s);
int maxlen;
int omaxlen=0;
int begin=0;
int array[1000][1000];
int llen;
for(i=0;i<1000;i++){
for(j=0;j<1000;j++){
if(i==j) array[i][j]=1;
else array[i][j]=0;
}
}
for(i=0;i<len-1;i++){
if(s[i]==s[i+1]){
array[i][i+1]=1;
maxlen=2;
if(maxlen>omaxlen){
omaxlen=maxlen;
begin=i;
}
}
}
for(llen=3;llen<=len;llen++){
for(i=0;i<len-llen+1;i++){
j=i+llen-1;
if(i+1>j-1){
if(array[i][j-1]==1 && s[i]==s[j]){
array[i][j]=1;
maxlen=j-i+1;
if(maxlen>omaxlen){
omaxlen=maxlen;
begin=i;
}
}else array[i][j]=0;
}else{
if(array[i+1][j-1]==1 && s[i]==s[j]){
array[i][j]=1;
maxlen=j-i+1;
// printf("%d %d %d\n",i,j,maxlen);
if(maxlen>omaxlen){
omaxlen=maxlen;
begin=i;
}
}else array[i][j]=0;
}
// printf("array[%d][%d]=%d\n",i,j,array[i][j]);
}
}
static char ans[1001];
memset(ans,0,1001);
// printf("%d\n%d\n",begin,omaxlen);
strncpy(ans,s+begin,omaxlen);
if(omaxlen==0) strncpy(ans,s,1);
if(len==1) return s;
else return ans;
}
參考資料:
[1] http://www.csie.ntnu.edu.tw/~u91029/Palindrome.html
[2] https://medium.com/@ChYuan/leetcode-no-322-longest-palindromic-substring-%E5%BF%83%E5%BE%97-medium-3ff9eff34230
[3] https://skylinelimit.blogspot.com/2018/02/c-2.html
[4] https://openhome.cc/Gossip/CGossip/StringLengthCopyCat.html
[5] https://www.geeksforgeeks.org/longest-palindrome-substring-set-1/
[6] https://stackoverflow.com/questions/6205195/given-a-starting-and-ending-indices-how-can-i-copy-part-of-a-string-in-c
聊得很開心ヽ(●´∀`●)ノ
今天大學同學來學校找我敘舊,聊了很久,談了論文和找工作的情況,祝福我們兩個在未來都能順利達成自己的目標,我也要繼續加油,每天都要有一點進度,衝鴨~,今天就來更新一下自傳履歷吧
2020年6月11日 星期四
2020年6月10日 星期三
week 16 LeetCode Problem 13
解題關鍵在於觀察羅馬數字的計算邏輯,歡迎分享更短的寫法~
PS: 剛剛更換網頁字型,文章被吃掉好幾次,嗚嗚。゚ヽ(゚´Д`)ノ゚。
int romanToInt(char * s){
int sum=0,a=0,b=0,input,last_input=0,flag;size_t len = strlen(s);
for(int i=len-1;i>=0;i--){
if(s[i]=='I') input=1;
else if(s[i]=='V') input=5;
else if(s[i]=='X') input=10;
else if(s[i]=='L') input=50;
else if(s[i]=='C') input=100;
else if(s[i]=='D') input=500;
else if(s[i]=='M') input=1000;
if(last_input!=0){
if(input==last_input){
sum=sum+input;
}else if(input>last_input){
sum=sum+input;
}else if(input<last_input){
sum=sum-input;
}
}else{
sum=sum+input;
}
last_input=input;
}
return sum;
}
2020年6月2日 星期二
訂閱:
文章 (Atom)
2025 MTK 韌體工程師 上機考心得 前言: 以前, 我覺得寫前後端的人才是真正的寫程式, 很羨慕那些大神 直到這次準備, 我才發現靠杯, 原來寫底層的程式也那麼硬派, XOR 一些奇奇怪怪的加速運算操作, 剛看到真的是無法想像, 有夠虧賊! 1. C/C++ Pro...
-
感覺筆電都好貴喔
-
本題難度為 medium,剛開始看到題目就傻住了,知道要用 Dynamic Programming 的解法,不然可能會超時,看一下台師大的演算法筆記,原來這種題目時間複雜度是O(N^4),例如 Uva 12473,參考中英文的資料後,用習慣的 C 語言,總算是把這題解出來了,...
-
# cat /etc/centos-release CentOS Linux release 7.5.1804 (Core) # yum install python-devel # yum install python-crypto # ...