日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【模拟】【递归】解压字符串(jzoj 1519)

發布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【模拟】【递归】解压字符串(jzoj 1519) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解壓字符串

jzoj 1519

題目大意:

有一串壓縮過的字符串,將有重復的壓縮成了s(~~)的形式(s是一位數,例子:123123123壓縮成‘3(123)’),現在要你解壓出來,然后輸出長度

樣例輸入

123

樣例輸出

3

數據范圍限制

字符串長度不超過50

提示#1:

提示#2:

50%的測試數據,只有一對括號,或者兩對括號。

解題思路:

用一個遞歸函數來解開括號,然后一個一個解就行了

代碼:

#include<cstdio> #include<string> #include<cstring> #include<iostream> using namespace std; string str; int js(int x,int y) {int sum=0,i=x,k,s,ys;while (i<=y){if (str[i+1]!='(') sum++;//判斷是否是普通數字else{k=i;i+=2;s=1;ys=0;while (s!=ys)//尋找匹配的括號{if (str[i]=='(') s++;if (str[i]==')') ys++;++i;}i--;sum+=(str[k]-48)*js(k+2,i-1);//遞歸}++i;}return sum; } int main() {cin>>str;str=' '+str;printf("%d",js(1,str.size()-1));//計算結果 }

總結

以上是生活随笔為你收集整理的【模拟】【递归】解压字符串(jzoj 1519)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。