2020 08 06 京東筆試題

2021-10-23 10:37:39 字數 3107 閱讀 8138

題目描述:

x星人的基因由a、b、c、d、e五種不同的結構組合而成。

如果兩個性別不同的x星人的基因序列相似度大於50%,按照x星的法律他們是禁止結婚的,等於50%據說還是可以的。

那麼基因的相似度怎麼計算呢?分別從兩個人身上取長度均為n的基因片段,如果它們的最長公共子串行

(注意,最長公共子串行不需要連續)的長度為m,則相似度=m/n。是不是很簡單呢?

現在給你兩段x星人的基因序列片段,請你判斷他們是不是可以結婚?

思路:動態規劃,求最長子序列問題

def

test()

: n =

int(

input()

) arr1 =

input()

.strip(

).split(

" ")

arr2 =

input()

.strip(

).split(

" ")

dp =[[

0]* n for _ in

range

(n)]

dp[0]

[0]=

1if arr2[0]

== arr1[0]

else

0for i in

range(1

, n)

: dp[0]

[i]=

max(dp[0]

[i -1]

,1if arr1[0]

== arr2[i]

else0)

for i in

range(1

, n)

: dp[i][0

]=max(dp[i -1]

[0],

1if arr2[0]

== arr1[i]

else0)

for i in

range(1

, n)

:for j in

range(1

, n)

: dp[i]

[j]=

max(dp[i -1]

[j], dp[i]

[j -1]

)if arr1[i]

== arr2[j]

: dp[i]

[j]=

max(dp[i]

[j], dp[i -1]

[j -1]

+1) res = dp[-1

][-1

]/ n

return

round

(res,2)

if __name__ ==

'__main__'

: res = test(

)if res <=

0.5:

yes =

" yes "

print

(res, end="")

print

(yes, end="")

else

:print

(" no "

)

回文判斷:

現有乙個正整數,希望去掉這個數中某乙個數字之後可以得到乙個回文素數。

回文素數是指乙個素數同時還是乙個回文數(回文數即從左到右和從右到左均一樣的數,例如12321)。【注意:一位數也被認為是回文數】

輸入兩個正整數n和m,滿足n思路:雙指標按回文解決。

def

test()

: n, m =

list

(map

(int

,input()

.strip(

).split(

" ")))

count =

0for i in

range

(n, m +1)

: strn = getnumlist(i)

if valid(strn)

: count +=

1return count

defvalid

(s):

left =

0 right =

len(s)-1

while left < right:

if s[left]

!= s[right]

:return ispalindrom(s, left +

1, right)

or ispalindrom(s, left, right -1)

else

: left +=

1 right -=

1return

true

defispalindrom

(s, left, right)

:if s[0]

=="0"

: s = s[1:

]while left < right:

if s[left]

== s[right]

: left +=

1 right -=

1else

:return

false

return

true

defgetnumlist

(n):

res =

""while n >0:

res +=

str(n %10)

n = n //

10# print(res)

res = res[::

-1]if res[0]

=="0"

:return res[1:

]return res

if __name__ ==

'__main__'

:print

(test(

))

第一題提交過45%;

第二題過18%。

這是為什麼呢?一臉懵逼。是python的原因嗎

京東筆試題

剛才看到一篇京東筆試題,又見無聊題,俗稱智力題,下面我們就看看。1.說一架飛機可以飛50公尺,但是現在需要其飛100公尺,飛機之間可以互相加油。問是要飛完一共需要派出幾架飛機 首先飛機快飛到25公尺處時派出一架飛機從起點起飛,同時到達25公尺處,加完油後可以可以飛到75公尺,快到75公尺時從終點派出...

京東筆試題總結

1.談談優雅降級與漸進增強的區別。漸進增強 progressive enhancement 針對低版本瀏覽器進行構建頁面,保證最基本的功能,然後再針對高階瀏覽器進行效果 互動等改進和追加功能達到更好的使用者體驗。優雅降級 graceful degradation 一開始就構建完整的功能,然後再針對低...

京東2016筆試題

我的結果,深度搜尋。考試當場小毛病沒改出來16 正確率 後來發現橫縱座標寫反了。醉了。以後再也不用xy做座標了,用row col的話就不會想歪了。include include using namespace std int dfs vector map,int x,int y,int max,in...