中文english
給定兩個正整數x和y,以及正整數陣列nums。
我們需要找到乙個最大的index,使得在nums[0], nums[1], .... , nums[index]中,出現x、y的次數相等,且至少均出現一次,返回該index。
若不存在這樣的index,則返回-1。
示例 1:
輸入:x = 2
y = 4
nums: [1, 2, 3, 4, 4, 3]
輸出: 3
解釋: 保證 2 和 4 出現相同次數的最長字首是: ,所以你應該返回3。
示例 2:
輸入:x = 7
y = 42
nums = [7、42、5、6、42、8、7、5、3、6、7]
輸出:9
解釋:保證7和42出現相同次數的最長字首是:,所以你應該返回9。
示例 3:
輸入:x = 1
y = 10
nums: [2, 3, 1]
輸出:-1
解釋:不存在字首使得 1 和 10 都出現且出現次數相同的情況
輸入測試資料 (每行乙個引數)如何理解測試資料?
classsolution:
"""@param x: a integer
@param y: a integer
@param nums: a list of integer
@return:
return
the maximum index of largest prefix
"""'''
大致思路:
1.初始化p,和c_x和c_y,如果兩者相等,則更新p=i,並且c_x不能為0的前提,最後如果p為0,則返回-1
,否則返回p。
'''def longestprefix(self, x, y, nums):
p = 0
c_x,c_y = 0,0
for i in
range(len(nums)):
if nums[i] ==x:
c_x += 1
elif nums[i] ==y:
c_y += 1
#不為0才進來
if c_x == c_y and c_x != 0
: p =i
return -1
if p == 0
else p
字尾陣列 LCP(最長公共字首)
sa sa陣列儲存的是乙個1 n的全排列,儲存的是 將所有字尾按字典序排序後,串在原串中的位置。即有suffix sa i suffix sa i 1 rank rank陣列儲存的是 suffix i 在所有字尾中按字典序排序的 名次 總結 字尾陣列是 排第幾的是誰?名次陣列是 你排第幾?lcp i...
字尾陣列之最長公共字首
include define maxn 100 int main s maxn s串可以看成abcbc int i,j,k 0 for i 0 i 5 i rank sa i i for i 0 i 5 i if k k j sa rank i 1 當rank k 不等於0的時候,rank i 1計...
隨筆 求字元陣列最長公共字首
題目 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 思路 找乙個基點,比如字元陣列0號...