View Code of Problem 3924

#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.


Back to problem 3924