leetcode 476. Number Complement(C语言)

来源:互联网 发布:算法导论英文版 百度云 编辑:程序博客网 时间:2024/05/17 08:05

  第六天。(第七天签到,来修改个bug)
  这道题还没有解决,不知道是我算法问题还是leetcode的bug,下面会贴出我的程序,希望路过的大神们指点指点啊!
先贴原题

Write a function that takes a string as input and returns the string reversed.

Example:
Given s = “hello”, return “olleh”.

我的bug代码:

char* reverseString(char* s) {    int len=strlen(s);    char *string=NULL;    string=(char*)malloc((len)*sizeof(char));    for(int i=0; i<len; i++)    {        *(string+i)=*(s+len-1-i);    }    return string;}

提交后的错误提示:

Input: “race a car”
Output: “rac a ecar..”
Expected: “rac a ecar”
这里写图片描述
下面这个是我runcode得到的,我用其它的测试用例也都没有问题……
这里写图片描述

  希望各位路过的大神指点一下,我这个究竟为什么会出错啊!


  emmm……这里是第七天。
  我的错误代码就不删了,给自己一个教训的同时也希望给各位路过的同学们提个醒。
贴修改后的程序:

char* reverseString(char* s) {    int len=strlen(s);    char *restr=NULL;    restr=(char*)malloc((len+5)*sizeof(char));    for(int i=0; i<len; i++)    {        *(restr+i)=*(s+len-1-i);    }    *(restr+len)='\0';    return restr;}

学习笔记:
  在c语言中,将字符串作为字符数组来处理。
  C语言规定了一个“字符串结束标志”,以字符’\0’代表。
  在程序中往往依靠检测’\0’的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串长度。在定义字符数组时应估计实际字符串长度,保证数组长度始终大于字符串实际长度。