HDU-4041-Eliminate Witches! (11年北京网络赛!!)(二)
scanf("%d", &t); while(t--) { stack
ST; scanf("%s", str); len = strlen(str); tar = true; num = 0; ans = 0; for(i = 0; i < len; i++) //记录各个字符串 { if(str[i]>='a' && str[i]<='z') { sh[ans++] = str[i]; tar = false; } else { if(tar) continue; sh[ans] = 0; strcpy(ch[num], sh); num++; ans = 0; tar = true; } } if(!tar) { sh[ans] = 0; strcpy(ch[num], sh); num++; } printf("%d\n", num); for(i = 0; i < num; i++) //输出各个字符串 { printf("%s\n", ch[i]); } k = 1; for (i = 0; i < len; i++) { if(str[i] == '(') continue; if(str[i] >= 'a' && str[i] <= 'z' && (i+1 >= len || str[i+1] < 'a' || str[i+1] > 'z')) { if(ST.size() > 0) printf ("%d %d\n", ST.top(), k); //进栈过程输出 ST.push(k++); } if(str[i] == ',' || str[i] == ')') //出栈过程输出 { printf("%d ", ST.top()); ST.pop(); printf("%d\n", ST.top()); } } putchar(10); //记得换行!! } return 0; }