** d : 字串的展開**
時間限制: 1000 ms 記憶體限制: 32768 kb
在初賽普及組的「閱讀程式寫結果」的問題中,我們曾給出乙個字串展開的例子:如果在輸入的字串中,含有類似於「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行為一行字串,僅由數字、小寫字母和減號「-」組成。行首和行末均無空格。
【限制】
40%的資料滿足:字串長度不超過5
100%的資料滿足:1<=p1<=3,1<=p2<=8,1<=p3<=2。字串長度不超過100
輸出格式
輸出只有一行,為展開後的字串。
樣例輸入
樣例輸入1:
1 2 1
abcs-w1234-9s-4zz
樣例輸入2:
2 3 2
a-d-d
樣例輸入3:
3 4 2
di-jkstra2-6
樣例輸出
樣例輸出1:
abcsttuuvvw1234556677889s-4zz
樣例輸出2:
acccbbbd-d
樣例輸出3:
dijkstra2************6
我是按老師的提示寫的,不多說了,看**。
#include
using
namespace
std;
int p1,p2,p3;
string a;
int judge(int x)
string produce(int g,int s,int t,int x,int y,int z)
if(g==1)
}if(g==2)
}else
if(x==2) }}
if(z==2)
return tmp;
}int main()
string t=produce(g,f-1,f+1,p1,p2,p3);
a.replace(f,1,t);
}flag=f+1;
}cout
0;}
牛客 D白兔的字串
白兔有乙個字串t。白雲有若干個字串s1,s2 sn。白兔想知道,對於白雲的每乙個字串,它有多少個子串是和t迴圈同構的。所有字元都是小寫英文本母 第一行乙個字串t t 10 6 第二行乙個正整數n n 1000 接下來n行為s1 sn s1 s2 sn 107 max s1 s2 s3 s4 sn 1...
mysql 字串 反轉 字串反轉的9種方法
1.使用array.reverse方法 對於字串反轉,我們可以使用.net類庫自帶的array.reverse方法 public static string reversebyarray string original char c original.tochararray array.revers...
6 24 D字串的輸入 C語言
d字串是動態分配記憶體的字串,它也採用char陣列來儲存字串中的字元,但是這個陣列是在堆中動態分配得到的。本題要求編寫d字串的讀入乙個單詞的函式。題目來自pta 中m2020春c入門練習第ii段 char dstr readword dstr readword從標準輸入讀入乙個字串,到回車換行 空格...