tips:答案在所有問題的後邊
簡單的字串排序
將字串按ascii的順序進行排序
注意,用例的輸入是input()
輸入描述
cba輸出描述
abc示例1
輸入示例2
cba
輸出
abc
輸入題2
031fc
輸出
013cf
字元對映
(1) 有乙個字元生成裝置,有按鈕1-9,其中每個數字對應多個字母,對應關係如下:
1 – a,b,c
2 – d,e,f
3 – g,h,i
4 – j,k,l
5 – m,n,o
6 – p,q,r
7 – s,t,u
8 – v,w,x
9 – y,z
現在給出乙個只包含1-9的點按序列,返回所有可能的對映組合,以字典序輸出。
輸入描述
輸入:輸出描述13
輸出:示例1ag ah ai bg bh bi cg ch ci
輸入
13
輸出
ag ah ai bg bh bi cg ch ci
#coding=utf-8
# 獲取輸入的字串
l =input()
# 三個陣列:c_array儲存字元,n_array儲存數字
# result儲存結果陣列
c_array =
n_array =
result =
# 遍歷輸入,把字串和數字分別加入對應陣列
for i in l:
if i.isalpha():
else
:# 分別對應排序
n_array.sort(
)c_array.sort(
)# 將數字和字元順序加入結果
result.extend(n_array)
result.extend(c_array)
# 將list結果轉換為str
print(''
.join(result)
)
# dic:儲存對應關係 mid:用來存放中間變數
dic =
mid =
# 生成最初字串數字對應關係
for index in
range(26
):mid.extend(
chr(index+
ord(
'a')))
if((index +1)
%3==0
)|(index ==25)
:# 遇到三個時加入另乙個數字,25是因為最後的數字不夠對應三個元素
mid =
# 獲取輸入的值並且儲存為list
l =input()
i_index =
for item in l:
i_index.extend(item)
# 生成對應關係
# res裡存放是結果陣列 flag是標誌是否是第一次迴圈
res =
flag =
0for item in i_index:
if flag ==0:
res = dic[
int(item)-1
]# 如果是第一次迴圈,就直接賦值就好
else
: res =
[(x + y)
for x in res for y in dic[
int(item)-1
]]# 生成兩個陣列的笛卡爾積
flag =
1# 第一次迴圈後,將標誌位記為1
res.sort(
)# 排序
# 輸出結果
for i in
range
(len
(res)):
(res[i]
, end=
' ')
python 面試演算法題
1 2 1.買賣 的最佳時機給定乙個陣列,它的第?i?個元素是一支給定 第?i?天的 3如果你最多隻允許完成一筆交易 即 和賣出一支 設計乙個演算法來計算你所能獲取的最大利潤。4注意你不能在 前賣出 5分 5要求 61.輸入 7,1,5,3,6,4 72.輸出 5 83.解釋 在第 2 天 1 的時...
面試演算法題
前幾天,一好友去筆試,有一題 現在有1000個蘋果,和10個箱子,如何把這1000個蘋果裝在這10個箱子裡,才能使不管任何數量 1 1000 的蘋果,都能一次給出?當時,我們都想,出題這人。今天,在想移位的時候,突然想到了,這絕對是二進位制數的變種。分析 1000個蘋果,最接近1024,轉化為2進製...
面試演算法題
1 直方圖矩形最大值 class solution s.push i return res 2 第n個醜數 class solution return res.back 3 lru cache 最近最少使用頁面置換快取器 class lrucache int get int key void set...