题目链接
【题目描述】
你的笔记本键盘存在故障,每当你在上面输入字符 ‘i’ 时,它会反转你所写的字符串。而输入其他字符则可以正常工作。
给你一个下标从 0 开始的字符串 s ,请你用故障键盘依次输入每个字符。
返回最终笔记本屏幕上输出的字符串。
【实现代码】
char* finalString(char* s) {char *p;p = malloc(sizeof(char) * 102);int len = 0;for (int i=0; s[i]; i++) {if (s[i] != 'i') { //不是字符'i'时正常工作p[len++] = s[i];} else { //否则反转字符串for (int l=0, r=len-1; l<r; l++, r--) {char tmp;tmp = p[l];p[l] = p[r];p[r] = tmp;}}}p[len] = '\0';return p;
}
【总结一下】
虽然这道题目是简单题,但是在实现时仍有些困难。主要难点在于遇到’i’字符时反转哪部分字符串,这就需要字符数组p记录当前的字符串,想明白这个之后,问题就变得容易解决啦!