乙個關於字串處理的題目,因為有括號,如果每一次都是去找最裡面的左括號再找對應右括號肯定不好處理,我們採取的方法就是直接從左到右的處理,然後遇到括號我們就採取遞迴的思想去處理,因為涉及到字串的拼接,所以這裡我們最好用到的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...