- Leetcode 3403. Find the Lexicographically Largest String From the Box I
- 1. 解题思路
- 2. 代码实现
- 题目链接:3403. Find the Lexicographically Largest String From the Box I
1. 解题思路
这一题我一开始的思路是想用动态规划,结果发现想复杂了,要找出最大可能的substring,事实上其必然是以最大的字符开头的substring所能构造出来的最长的字符串当中最大的一个。
因此,只要给定的numFriends
不是1,我们就只需要找到字符串的最大的字符char
,然后考察所有该字符位置作为开头所能构成的最长的字符串,然后取出其最大值即可。
2. 代码实现
给出python代码实现如下:
class Solution:def answerString(self, word: str, numFriends: int) -> str:if numFriends == 1:return wordn = len(word)max_char = max(word)ans = max_charfor i, ch in enumerate(word):if ch != max_char:continueif i >= numFriends-1:tmp = word[i:]else:need = numFriends - itmp = word[i:n-(numFriends - 1 - i)]ans = max(ans, tmp)return ans
提交代码评测得到:耗时4ms,占用内存18MB。