例如AbcDeFGhi ->bceiADFG
這道題目是今年騰訊的面試題,我的想法是基於冒泡的思想,從頭開始掃描,遇到小寫字母就往前面冒
初始:AbcDeFGhi
冒'b': bAcDeFGhi
冒'c': bcADeFGhi
冒'e': bceADFGhi
冒'h': bcehADFGi
冒'i': bcehiADFG
得到最終結果爲bceiADFG
最終代碼如下
#include <stdio.h>
#include <string.h>
int main() {
char s[1000], t;
int i, j;
while (scanf("%s", s) != EOF) {
for (i = 1; i < strlen(s); ++i) {
j = i;
if ('a' <= s[i] && s[i] <= 'z')
while (j != 0 && 'A' <= s[j-1] && s[j-1] <= 'Z') {
t = s[j-1];
s[j-1] = s[j];
s[j--] = t;
}
}
printf("%s\n", s);
}
return 0;
}