1、尋找子串
思路:重複的最多的子字串,那肯定是單個字元重複的最多就行了
###轉化為求單個字元出現次數最多
ss = input()
ls = [s for s in ss]
p = set(ls)
max = 0
for c in p:
if ls.count(c) > max:
max = ls.count(c)
print(max)
2、散步
思路一:
1、設定兩個長度為n+1的dp1、dp2陣列,dp1表示出發點陣列,dp2表示終點陣列。dp2[i]表示某次停下是否能到第i個位置,dp2[i] = 0表示不能到達,dp2[i] = 1表示能到達,
2、初始dp1[1…n] = 1,表示可以從任意的位置出發,
對於每走dj距離,方向可以向左走或向右走,那麼走完dj距離後,可到達的位置用dp2表示,即,轉移方程為:
if dp1[j]==1 and j + d[i] <= n:
dp2[j + d[i]] = 1
if dp1[j]==1 and j - d[i] >= 1:
dp2[j - d[i]] = 1
3、更新下一次的出發點陣列
dp1 = dp2
對於每走一步di,都要對dp[j]進行一次遍歷,總共n x m次, 所以時間複雜度o(n×m),空間複雜度o(n)。
def count_destination(n,m,d):
dp1 = [1] * (n + 1) ###表示出發點,初始化為1所有點均可以當做出發點
dp2 = [0] * (n + 1) ###表示終點
for i in range(len(d)):
###初始化終點陣列
for k in range(1, n + 1):
dp2[k] = 0
###更新終點陣列
for j in range(1,n+1):
#dp2[j]=0
if dp1[j]==1 and j + d[i] <= n:
dp2[j + d[i]] = 1
if dp1[j]==1 and j - d[i] >= 1:
dp2[j - d[i]] = 1
###更新下一次的出發點陣列,此時若dp1=dp2,將會導致dp1是dp2的深拷貝,dp2值的改變會導致dp1值的改變
for k in range(0,n+1):
dp1[k]=dp2[k]
ans=0
for k in range(1,n+1):
if dp2[k]==1:
ans+=1
return ans
n,m=map(int,input().split())
d=for i in range(m):
print(count_destination(n,m,d))
思路二:
深度優先遍歷:每次從起始點開始向左或向右走,每種走法一直遍歷搜尋到最後一步時,再返回開始從另一種起始點出發,依次遞迴…
def count_destination(m,n,d_id,cur,ans):
if cur>n or cur<1:
return none
if d_id==m:
return none
count_destination(m, n, d_id+1, cur + d[d_id], ans)
count_destination(m, n, d_id+1, cur - d[d_id], ans)
n,m=map(int,input().split())
d=for i in range(m):
ans=
for i in range(1,n+1):
count_destination(m, n, 0, i, ans)
print(len(set(ans)))
360校園招聘2015屆技術類筆試題
上高中的小明暗戀女神三年,高考結束後,小明決定向女神表白。這天,小明來到女神樓下等待女神的出現,時間一分一秒的流逝,兩個多小時過去了,女神還沒有出現,小明看了下表,時針和分針的位置正好跟開始等的時候互換,請問小明一共等了女神多少分鐘 根據題目描述,可以想象一下應該是類似下圖的情況 設小明剛剛等女神的...
360校園招聘2015屆技術類筆試題
1.上高中的小明暗戀女神三年,高考結束後,小明決定向女神表白。這天,小明來到女神樓下等待女神的出現,時間一分一秒的流逝,兩個多小時過去了,女神還沒有出現,小明看了下表,時針和分針的位置正好跟開始等的時候互換,請問小明一共等了女神多少分鐘 a.172b.166c.165d.150 答案 b 根據題意 ...
轉,校園招聘 google2009筆試題
1 1關於ip協議那個正確 a ip是tcp上層協議b ip協議是應用層協議c由於兩個屬於同一層協議,他們之間可以直接通訊dip協議不提供可靠的通訊 1.2 關於記憶體正確的是 a記憶體的訪問速度不能低於cpu速度,否則會造成資料丟失 b程式只有在資料和 等被調入記憶體後才能執行 c採用虛擬記憶體技...