[閒聊] 徵工讀生

看板Marginalman作者 (黑人問號)時間7年前 (2018/05/07 00:39), 7年前編輯推噓4(4013)
留言17則, 7人參與, 7年前最新討論串1/2 (看更多)
幫我找這兩段code速度不同的原因 前者速度 > 後者 #include <stdio.h> #include <string.h> int main(){ char s[20000], re[40000]; int len, cm, time, in[5000], temp; int i, j; while(scanf("%s",s) != EOF){ cm = 1; time = 1; len = strlen(s); for(i = 0; i < len; i++){ //插入特殊符號 re[i*2] = s[i]; if(i != len-1) re[i*2+1] = '|'; } for(i = 0; i < len*2-1; i++){ for(j = 0; j < len; j++){ if(re[i+j] != re[i-j]) break; } temp = j; if(re[i+j-1] == '|') temp--; if(temp > cm){ time = 1; //start from 1 in[time] = i; cm = temp; } else if(temp == cm){ time++; in[time] = i; } } if(cm > 1){ printf("%d ", cm); for(i = 1; i <= time; i++){ for(j = 0; j < cm*2; j+=2){ printf("%c", re[in[i]-(cm-1)+j]); } if(i != time) printf(", "); } } else printf("0"); printf("\n"); } return 0; } #include<stdio.h> #include<string.h> #include <stdlib.h> int main() { int time=0, max, len, list[5000], x, temp, count=0; char input[20000], add[40000]; int i, j; while(scanf("%s", input) != EOF) { max = 1; for(i = 0;i <= strlen(input); i++) { add[i*2] = ' '; add[i*2+1] = input[i]; } len = strlen(input);// for(i = 0; i < len*2; i++)// { for(j = 1; j <= len; j++)// { if(add[i+j] != add[i-j]) //X break; } temp = j-1; //X if(temp > max) { max = temp; time = 1; list[time]=i; } else if(temp == max) { time++; list[time] = i; } } if(max > 1) { printf("%d ", max); for(i = 1; i <= time; i++)//O { for(j = 0; j <= max*2-1; j += 2)//X { printf("%c", add[list[i]-(max-1)+j]);//O } if(i != time) printf(", "); } } else printf("0"); printf("\n");//X } return 0; } 時薪50P -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.107.188.26 ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1525624764.A.CC6.html ※ 編輯: wwndbk (120.107.188.26), 05/07/2018 00:39:55

05/07 00:39, 7年前 , 1F
看不懂QQ
05/07 00:39, 1F

05/07 00:40, 7年前 , 2F
沒關係我也是
05/07 00:40, 2F

05/07 00:41, 7年前 , 3F
我只會Hello Happy world
05/07 00:41, 3F

05/07 00:41, 7年前 , 4F
樓上摳摳蘿粉 嘔嘔嘔嘔嘔
05/07 00:41, 4F
※ 編輯: wwndbk (120.107.188.26), 05/07/2018 00:42:54

05/07 00:46, 7年前 , 5F
你TIME有5000筆? 所以多一個elseif 比if else還要花
05/07 00:46, 5F

05/07 00:46, 7年前 , 6F
時間?
05/07 00:46, 6F

05/07 00:51, 7年前 , 7F
先說你要幹嘛喇 沒空慢慢看
05/07 00:51, 7F

05/07 00:51, 7年前 , 8F
你可以說一下第幾頁的嗎QQ
05/07 00:51, 8F

05/07 00:52, 7年前 , 9F
這葛就簡單的回文喇 兩葛都會對不過後面的跑比較慢
05/07 00:52, 9F

05/07 00:52, 7年前 , 10F
錢ㄚ
05/07 00:52, 10F

05/07 00:54, 7年前 , 11F
05/07 00:54, 11F

05/07 00:58, 7年前 , 12F
太長了 我懶得看 加油
05/07 00:58, 12F

05/07 01:00, 7年前 , 13F
恩恩 沒關係
05/07 01:00, 13F

05/07 01:04, 7年前 , 14F
我也不太懂 看到for以後就好難分析這是跑什麼的
05/07 01:04, 14F

05/07 01:07, 7年前 , 15F
其實你貼的執行結果我也看不懂就是了 可以考慮註解多
05/07 01:07, 15F

05/07 01:07, 7年前 , 16F
寫一點
05/07 01:07, 16F

05/07 01:09, 7年前 , 17F
就找最長回文像abba之類的 感謝建議~
05/07 01:09, 17F
文章代碼(AID): #1Qxo-yp6 (Marginalman)
文章代碼(AID): #1Qxo-yp6 (Marginalman)