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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

一道笔试题

發布時間:2024/9/30 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一道笔试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在網上看到這樣一道題。題目如下:

同構串 時間限制:C/C++語言 1000MS;其他語言 3000MS 內存限制:C/C++語言 65536KB;其他語言 589824KB 題目描述: 給出兩個字符串a1a2a3...an和b1b2b3...bm,如果存在一種映射ai=f(bi),且如果ai≠bi,f(ai)≠f(bi),我們稱這兩個字符串同構。輸入 輸入第一行包含一個t,表示數據組數,t<=20.對于每組數據,輸入包含兩行,每一行有一個字符串。每個字符串的長度不超過10000,字符串全部由小寫字母組成。輸出 對于每組數據輸出一行,如果字符串同構,輸出“Yes”,不同構則輸出“No”。樣例輸入2 abac bcbd aba abc 樣例輸出 Yes No

當時腦子里首先想到的就是python的字典。代碼實現如下:(python3)

def test1(a, b):if len(a)!=len(b):return Falsec = {i:0 for i in a}for i in range(len(b)):if c[a[i]] == 0:c[a[i]] = b[i]else:if c[a[i]] != b[i]:return Falsereturn True

然后經網友提醒還可以通過排序來判斷,代碼如下:

def test2(a, b):if len(a) != len(b):return Falsec = [[a[i], b[i]] for i in range(len(a))]c.sort()for i in range(len(c)-1):if c[i][0] == c[i+1][0] and c[i][1] != c[i+1][1]:return Falsereturn True

這兩種方法經測試都可以編譯通過,拿出來與大家共勉,如有不足,不吝賜教。

總結

以上是生活随笔為你收集整理的一道笔试题的全部內容,希望文章能夠幫你解決所遇到的問題。

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