[閒聊] 徵工讀生
幫我找這兩段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
05/07 00:39, 1F
→
05/07 00:40,
7年前
, 2F
05/07 00:40, 2F
→
05/07 00:41,
7年前
, 3F
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
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
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
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
05/07 01:09, 17F
討論串 (同標題文章)