牛客網答題筆記 字元移位

2021-07-22 06:30:40 字數 1350 閱讀 8124

小q最近遇到了乙個難題:把乙個字串的大寫字母放到字串的後面,各個字元的相對位置不變,且不能申請額外的空間。

你能幫幫小q嗎?

輸入描述:

輸入資料有多組,每組包含乙個字串s,且保證:1<=s.length<=1000.
輸出描述:

對於每組資料,輸出移位後的字串。
輸入例子:

aklebiceild
輸出例子:

kleieilabcd
這題的給出的乙個提醒點是不要申請額外的空間,那麼我們在main函式中就不能初始化任何變數,我第一時間想到的是構造乙個函式,對字串進行拼接成string之後再返回,這個比較簡單,但是好像有點投機取巧了。

#include

#include

using

namespace

std;

string sort(string str)

return res1+res2;

}int main()

對原字串進行操作,如下:

從str末尾開始掃瞄,當遇到第乙個大寫的字母時,開始從這個字母往後面走,交換這個大寫字母後面是小數的字母,每次直到交換完,這時候就完成了第乙個字母的移位。

之後從之前交換的這個大寫字母的位置繼續往前掃瞄,掃到第二個大寫字母,重複以上過程,直到掃完整個陣列。

#include

#include

using namespace std;

int main()

swap(str[j],str[j-1]);}}

}cout<0;}

//1.用stl的partition演算法直接搞定

#include

#include

using

namespace

std;

bool islower(charc)

intmain()

}

//2.這個有點機智了,個人比較服這個答案的主人=_=|

#include

#include

using namespace std;

int main()

}return0;}

//根據題意輸出了正確結果...

//這個題仔細看看答案- -把大小寫分開輸出就可以了。

牛客網答題筆記 字串變型

輸入描述 給定乙個字串s以及它的長度n 1 n 500 輸出描述 請返回變形後的字串。題目保證給定的字串均由大小寫字母和空格構成。輸入例子 this is a sample 16輸出例子 sample a is this 這道題目就是簡單的字串變換的題目,涉及到大小寫轉換和逆序,注意區分邊界條件即可...

牛客網答題筆記 構造佇列

小明同學把1到n這n個數字按照一定的順序放入了乙個佇列q中。現在他對佇列q執行了如下程式 while q.empty 佇列不空,執行迴圈 做取出隊頭的值操作的時候,並不彈出當前隊頭。小明同學發現,這段程式恰好按順序輸出了1,2,3,n。現在小明想讓你構造出原始的佇列,你能做到嗎?輸入描述 第一行乙個...

牛客網答題筆記 構造回文

給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。輸入例子 abcda goo...