突然發現原來的方法好笨 字串的展開

2022-03-21 06:55:52 字數 1412 閱讀 8509

【題目描述】

在初賽普及組的「閱讀程式寫結果」的問題中,我們曾給出乙個字串展開的例子:如果在輸入的字串中,含有類似於「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」。

【輸入格式】

輸入檔案包括兩行:

第1行為用空格隔開的3個正整數,依次表示引數p1,p2,p3。

第2行為一行字串,僅由數字、小寫字母和減號「-」組成。行首和行末均無空格。

【輸出格式】

輸出檔案只有一行,為展開後的字串。

【樣例輸入】

樣例輸入1

樣例輸入2

1 2 1

abcs-w1234-9s-4zz

2 3 2

a-d-d

【樣例輸出】

樣例輸出1

樣例輸出2

abcsttuuvvw1234556677889s-4zz

acccbbbd-d

【分析】

無需分析。

#include #include #include #define maxn 100010

char s[maxn],c;

int p1,p2,p3,len;

bool same(char s,char t)

int main()

switch (p1)

}} return 0;

}

突然發現foxmail原來是騰訊的

看一下foxmail創始人,榜樣與前輩 張小龍男,1969年12月出生,湖南人。1987年考入華中科技大學 原華中工學院 電信系 1994年畢業,獲碩士學位。同年到廣州工作,從事軟體開發。此後,他開發了一款優秀的國產電子郵件客戶端軟體 foxmail。1997年1月,foxmail 1.0 beta...

字串及字串的方法

一 字串 js中的任何資料型別都可以當作物件來看。所以string既是基本資料型別,又是物件。二 宣告字串 var sstr 字串 var ostr new string 字串 三 字串屬性 1.length計算字串的長度 不區分中英文 var str hello world console.log...

字串的方法

獲取 int length 獲取長度 char charat int index 獲取位置上的某個字元 int indexof int ch 因為接受的是asc 碼,返回的是ch在字串中出現的第一次位置 int indexof int ch,int fromindex 從fromindex指定位置獲...