有序线性表删除重复的元素
这个问题跟前面的删除所有值为X的相似,主要的思想就是用了一个指针,表示当前有效元素的位置
#include <iostream> #include <string.h> #include <time.h> using namespace std; #define n 100 int main() { char SZ[n]; memset(SZ,'\0',n); cin>>SZ; int len = strlen(SZ); clock_t start,end;//用于计时 start = clock() ; //将第一个元素置为有效元素,计数器 +1,num表示这个阶段有可能重复的数 int count = 1;char num = SZ[0]; for(int i = 1;i < len;i++) { //若是重复,就跳往下个元素 if(SZ[i] == num) continue; SZ[count++] = num = SZ[i]; } len = count; for (int i = 0;i < len;i++) cout<<SZ[i]; end = clock(); cout<<"\n总共花费了"<<(end - start)<<endl; return 0; }
下面是运行结果