HDOJ 1274 展開字串

2021-07-14 21:04:58 字數 672 閱讀 4577

乙個關於字串處理的題目,因為有括號,如果每一次都是去找最裡面的左括號再找對應右括號肯定不好處理,我們採取的方法就是直接從左到右的處理,然後遇到括號我們就採取遞迴的思想去處理,因為涉及到字串的拼接,所以這裡我們最好用到的c++ string型別,雖然慢但是還是比較好用的。

#include #include #include #include #include using namespace std;

const int maxn = 1000+5;

char str[maxn];

bool vis[maxn];

int len;

string dfs(int pos)

{ string ans = "", tmp = "", tmp2 = "";

int num = 0;

for(int i=pos; i<=len; i++)

{ if(vis[i]) continue;

vis[i] = 1;

if((str[i] >= '0' && str[i] <= '9'))

num = num*10 + str[i] - '0';

else if(str[i] >= 'a' && str[i] <= 'z')

{ if(num == 0) num = 1;

for(int j=0; j

杭電 1274 展開字串

意思很明確,開始想到類似於表示式中綴轉字尾,畫了半天每個結果,突然意識到完全不用,用遞迴就可以了 火星十一郎的這個寫的比較簡潔 include include include include include includeusing namespace std typedef long long l...

hdu 1274 展開字串

problem description 在紡織cad系統開發過程中,經常會遇到紗線排列的問題。該問題的描述是這樣的 常用紗線的品種一般不會超過25種,所以分別可以用小寫字母表示不同的紗線,例如 abc表示三根紗線的排列 重複可以用數字和括號表示,例如 2 abc 表示abcabc 1 a 1a表示a...

HDU 1274 展開字串

problem description 在紡織cad系統開發過程中,經常會遇到紗線排列的問題。該問題的描述是這樣的 常用紗線的品種一般不會超過25種,所以分別可以用小寫字母表示不同的紗線,例如 abc表示三根紗線的排列 重複可以用數字和括號表示,例如 2 abc 表示abcabc 1 a 1a表示a...