#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <string.h>#include <stdio.h>/**1<=s.length<=1000AkleBiCeilDkleBiCeilDAkleiCeilDABkleieilDABCkleieilABCD*///https://www.nowcoder.com/question/next?pid=1725829&qid=44802&tid=6472682/**算法基礎-字符移位小Q最近遇到了一個難題:把一個字符串的大寫字母放到字符串的后面,各個字符的相對位置不變,且不能申請額外的空間。你能幫幫小Q嗎?輸入描述:輸入數據有多組,每組包含一個字符串s,且保證:1<=s.length<=1000.輸出描述:對于每組數據,輸出移位后的字符串。輸入例子:AkleBiCeilD輸出例子:kleieilABCD*/int main(){ char line[1001] = {0}; while (scanf("%s", line) != EOF) { //PRintf("%s/n", line); int len = strlen(line); int Upper_endpos = len-1; for (int m = len-1; m >0;m--) { char hehe = line[m]; if (hehe >= 'A' && hehe <= 'Z') { Upper_endpos = m; break; } } for (int i = 0; i < len; ) { char hehe = line[i]; if (hehe >= 'A' && hehe <= 'Z') { //小寫 for (int j = 0; j < len - i - 1; j++) { char data = line[i + j]; line[i + j] = line[i + j+1]; line[i + j+1] = data; } Upper_endpos--; } if (i >Upper_endpos) { break; } hehe = line[i]; if (hehe >= 'a' && hehe <= 'z') { i++; } } printf("%s/n", line); } return 0;}
新聞熱點
疑難解答