這題第三題又是前端類的模擬。
題目給定乙個模板,讓我們根據模板用引數替換其中的變數生成乙個特定的html文件
題目邏輯不難,考的也是字串類的,不過這種題一定要注意題目細節和細心做題。這種字串的題首選是用正規表示式來解題。
思路
簡單說下思路。一行行處理**,找到}模式的把這個模式識別到的字串替換成引數。最後輸出**
重要細節
如果標記中的變數沒有定義,則生成空串,相當於把標記從模板中刪除。
模板不遞迴生成。也就是說,如果變數的值中包含形如 } 的內容,不再做進一步的替換。(簡單的說就是每個匹配到的模式只替換一次,哪怕替換後還是}模式)
用python的re庫中的sub函式(替換函式)就可以很簡易的把內容替換掉。
python**
import re
def repl(match):
s = match.group()[3:-3]
return vs[s] if s in vs else ''
m, n = map(int, input().split())
codes =
for i in range(m):
vs = {}
for i in range(n):
k, v = input().split(' ', 1)
vs[k] = v[1:-1]
regex_obj = re.compile(r']* }}')
for i, line in enumerate(codes):
codes[i] = regex_obj.sub(repl, line)
for line in codes:
print(line)
CCF 201509 3 模板生成系統 正規表示式
題目就不貼了。這道題難度不是很大,只要會使用string的find函式和replace函式或者正規表示式就能將問題解決。總的來說這兩種方式的思路都是先匹配 然後替換裡面的值,下面是兩種方法的 如果你不會正規表示式,可以參考我的另一篇部落格正規表示式入門 正規表示式版 include using na...
CCF CSP 201509 3 模板生成系統
成成最近在搭建乙個 其中一些頁面的部分內容來自資料庫中不同的資料記錄,但是頁面的基本結構是相同的。例如,對於展示使用者資訊的頁面,當使用者為 tom 時,網頁的源 是 而當使用者為 jerry 時,網頁的源 是 這樣的例子在包含動態內容的 中還有很多。為了簡化生成網頁的工作,成成覺得他需要引入一套模...
ccf模板生成系統
這題目string處理的還是蠻不錯的,用到了getline,substr,find,等函式 include include using namespace std int main for int j 0 j str j 0 getline cin,str j 1 第二個有空格所以用getline ...