#include<stdio.h> #include <string.h> //这题目真的有问题,题目说s长度<=10^9,但实际上只能开到10^7,否则OJ就一直报错 //const int MAXN = 1e9 + 10; 写了这句的话,再在主函数外面写char s就会报错 char s[10000000]; //这句要放在主函数外面,别写1e9,否则会报错。也别写MAXN,就写普通数字 int main(){ //char s[1000000000]; 如果把这句放在main函数里面,那OJ就会runtime error,但放外面就不会了 scanf("%s",s); int len=strlen(s); for(int i=0;i<len;i++){ if(s[i]!=s[i+1]) printf("%c",s[i]); } return 0; } //这种写法虽然可以, 但OJ直接runtime error,因为循环太多次了。 //const int MAXN = 1e9 + 10; //int main(){ // char s[MAXN]; // scanf("%s", s); // int len = strlen(s); // int yidong = 0; // for(int i=0; i<len; i+=yidong){ // int cnt = 0; // for(int j=i+1; j<len; j++){ // if(s[i] == s[j]){ // s[j] = '*'; // cnt++; // } // } // yidong = cnt+1; // } // for(int i=0; i<len; i++){ // if(s[i] != '*'){ // printf("%c", s[i]); // } // } // printf("\n"); // return 0; //} |
Double click to view unformatted code.