2022年11月10日 星期四

[71] Simplify Path

彷彿真的很慢XD
啊...........
看來是要用ptr 自體copy比較快嗎?!(thinking圖)
不管如何, 先這樣XD
char * simplifyPath(char * path){
int maxLen = strlen(path);
int top = -1;
char* str = malloc (sizeof(char)*(maxLen+2));
char stack[maxLen][maxLen];
memset(stack, 0, sizeof(char) * (maxLen *maxLen));
memset(str,0,sizeof(char)*(maxLen+2));
char* ptr = strtok(path,"/");
while(ptr!=NULL)
{
if (strcmp(ptr,"..")==0)
{
if (top>=0)
top--;
}
else if(ptr[0]=='.' && ( strlen(ptr) > 1 ) ||
ptr[0]!='.' && ( strlen(ptr) > 0 ))
{
top++;
strcpy (stack[top], ptr);
}
ptr = strtok(NULL,"/");
}
str[0]= '/';
for (int i=0;i<=top;i++)
{
strcat(str,stack[i]);
strcat(str,"/");
}
if (strlen(str)>1)
str[strlen(str)-1]='\0';

return str;
}

沒有留言:

張貼留言