2020南大軟體夏令營機試模擬題3 字串的展開

2021-10-07 21:09:48 字數 1537 閱讀 5719

如果在輸入的字串中,含有 類似於「d-h」或者「4-8」的字串,我們就把它當作一種簡寫,輸出時,用連續遞增的字母獲數字串替代其中的減號,即,將上面兩個子串分別輸出為 「defgh」和「45678」。在本題中,我們通過增加一些引數的設定,使字串的展開更為靈活。具體約定如下:

(1) 遇到下面的情況需要做字串的展開:在輸入的字串中,出現了減號「-」,減號兩側同為小寫字母或同為數字,且按照ascii碼的順序,減號右邊的字元嚴格大於左邊的字元。

(2) 引數p1:展開方式。p1=1時,對於字母子串,填充小寫字母;p1=2時,對於字母子串,填充大寫字母。這兩種情況下數字子串的填充方式相同。p1=3時,不論是字母子串還是數字字串,都用與要填充的字母個數相同的星號「*」來填充。

(3) 引數p2:填充字元的重複個數。p2=k表示同乙個字元要連續填充k個。例如,當p2=3時,子串「d-h」應擴充套件為「deeefffgggh」。減號兩邊的字元不變。

(4) 引數p3:是否改為逆序:p3=1表示維持原來順序,p3=2表示採用逆序輸出,注意這時候仍然不包括減號兩端的字元。例如當p1=1、p2=2、p3=2時,子串「d-h」應擴充套件為「dggffeeh」。

(5) 如果減號右邊的字元恰好是左邊字元的後繼,只刪除中間的減號,例如:「d-e」應輸出為「de」,「3-4」應輸出為「34」。如果減號右邊的字元按照 ascii碼的順序小於或等於左邊字元,輸出時,要保留中間的減號,例如:「d-d」應輸出為「d-d」,「3-1」應輸出為「3-1」。

資料規模和約定

100%的資料滿足:1< =p1< =3,1< =p2< =8,1< =p3< =3。字串長度不超過100。

這一題不用什麼演算法,還是基本功。

#include

#include

#include

using

namespace std;

void

trans

(string &s,

int p1,

int p2,

int p3)

;int

main()

void

trans

(string &s,

int p1,

int p2,

int p3)

ch = s[i+1]

-s[i-1]

-1;//中間差了多少個 ,,3

if(ch==0)

s.erase

(s.begin()

+i);

for(

int a=

1;a<=ch;

++a)

else

if(p1==2)

else

}else}}

if(p3==2)

s.insert

(s.begin()

+i,str.

begin()

,str.

end())

;//i+=str.size();

len=s.

size()

;}}

哎,刷題去了。頂不住了呀

2020中南大學研究生招生夏令營機試題

題目描述 眾所周知,彩虹有7種顏色,我們給定七個 字母和顏色 的對映,如下所示 a red b orange c yellow d green e cyan f blue g purple 但是在某一天,彩虹的顏色少了幾種,你能告訴pipi哪些彩虹的顏色沒有出現過嗎?輸入輸入包含多組測試用例。對於每...

天津大學18 19夏令營機試彙總

以下內容不完全確保 ac 2019年智慧型學部夏令營機試 include define mod 1000000007 模 define ll long long int 資料型別 define m 10000000 fib 數列 using namespace std intmain 操作 int ...

2023年北理工計算機夏令營機試

1.第一行輸入兩個整數m,n m,n 50 之後輸入乙個m行n列的矩陣,其中0代表空格,1代表白紙,2代表墨水。每經過1秒,墨水會將上下左右相鄰的白紙部分染色成墨水,求經過多長時間所有的白紙部分都變成墨水。若不能完全染色,則輸出false。include include include using ...