description
大偵探福爾摩斯接到一張奇怪的字條:「我們約會吧!
3485djdkxh4hhge
2984akdfkkkkggedsb
s&hgsfdk
d&hyscvnm
大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間星期四 14:04,因為前面兩字串中第 1 對相同的大寫英文本母(大小寫有區分)是第 4 個字母 d,代表星期四;第 2 對相同的字元是 e ,那是第 5 個英文本母,代表一天裡的第 14 個鐘頭(於是一天的 0 點到 23 點由數字 0 到 9、以及大寫字母 a 到 n 表示);後面兩字串第 1 對相同的英文本母 s 出現在第 4 個位置(從 0 開始計數)上,代表第 4 分鐘。現給定兩對字串,請幫助福爾摩斯解碼得到約會的時間。
input
輸入在 4 行中分別給出 4 個非空、不包含空格、且長度不超過 60 的字串。
output
在一行中輸出約會的時間,格式為 day hh:mm,其中 day 是某星期的 3 字元縮寫,即 mon 表示星期一,tue 表示星期二,wed 表示星期三,thu 表示星期四,fri 表示星期五,sat 表示星期六,sun 表示星期日。題目輸入保證每個測試存在唯一解。
sample input
3485djdkxh4hhge
2984akdfkkkkggedsb
s&hgsfdk
d&hyscvnm
sample output
thu 14:04
參考程式
def
getmin
(a,b)
:if areturn a
else
:return b
deffind2
(str1,str2)
: length=getmin(
len(str1)
,len
(str2)
) cnt,i=0,
0 ls=
while i if cnt==0:
if str1[i]
==str2[i]
and str1[i]
in"abcdefg":)
cnt+=
1 i+=
1else
:if str1[i]
==str2[i]
:if str1[i]
in"0123456789":)
break
elif str1[i]
in"abcdefghijklmn":)
break
else
: i+=
1else
: i+=
1return ls
deffind1
(str1,str2)
: m=getmin(
len(str1)
,len
(str2)
)for i in
range
(m):
if str1[i]
.isalpha(
)and str1[i]
==str2[i]
:break
return i
st1=
input()
st2=
input()
st3=
input()
st4=
input()
week=
" abcdefg"
hour=
"0123456789abcdefghijklmn"
di=wh=find2(st1,st2)
day=di[week.index(wh[0]
)]hour=hour.index(wh[1]
)print
(" :"
.format
(day,hour,find1(st3,st4)
))
另外,在pat的評測系統中,若提交結果為「非零返回」,要特別注意程式在執行時是否發生了異常,比如下標訪問過界、一些方法呼叫返回的異常等 Python基礎程式設計題
1 接收輸入的一行字元,統計出字串中包含數字的個數 str input 請輸入一串字元 count 0for i in str if i.isdigit count count 1print 數字個數 d count 2 請輸入星期幾的第一 個字母,用來判斷是星期幾,如果第乙個字母一樣,則繼續判斷第...
陣列 程式設計題14
c 只能實現單句話,帶乙個標點 編寫程式顛倒句子中單詞的順序 方法 用迴圈逐個讀取字元,然後將它們儲存在乙個一維陣列中。當遇到句號 問號或者感嘆號 稱為 終止字元 時,中止迴圈並且把終止字元儲存在乙個char型別變數中。然後再用乙個迴圈反向搜尋陣列,找到最後乙個單詞起始位置。顯示最後乙個單詞,然後反...
測試面試 python基礎程式設計題
1.列表的去重 方法1 保持原列表的順序 l 1 2,2 4,8 7 l1 list set l 使用set 去重,無序 l2 sorted l1,key l.index 使用sorted的key關鍵字按列表l的索引值排序 或者使用list自帶的方法sort l1.sort key l.index ...