题解 | #计算某字母出现次数#

从单向链表中删除指定值的节点

http://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

C语言
解法
#include <stdio.h>

int main()
{
int inputArray[2500] = { 0 };
int i = 0;
int j = 0;
int l = 0;

while(scanf("%d", &inputArray[i]) != EOF) {
    i++;
}
int outputArray[1500] = { 0 };
outputArray[0] = inputArray[1];

for (i = 2; i < 2500; i+=2) {
    if (inputArray[i] == 0) {
        break;
    }

    for (j = 0; j < inputArray[0]; j++) {
        if (inputArray[i + 1] == 0) {
            //删除outputArray里值为inputArray[i + 1]的成员;
            if (inputArray[i] == outputArray[j]) {
                l++;
                for (int m = j; m < inputArray[0] - 1; m++) {
                    outputArray[m] = outputArray[m + 1];
                }
                j--;
            }
        } else {
            if (inputArray[i + 1] == outputArray[j]) {
                for (int k = inputArray[0] - 1; k > j; k--) {
                    outputArray[k + 1] = outputArray[k];
                }
                outputArray[j + 1] = inputArray[i];
            } 
        }
    }
}

for (i = 0; i < inputArray[0] - l; i++) {
    printf("%d ", outputArray[i]);
}

return 0;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务