栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

20220208

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

20220208

1.乘积最大子数组【数组】【动态规划】

给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

示例 1:

输入: [2,3,-2,4]
输出: 
6

解释: 子数组 [2,3] 有最大乘积 6。


示例 2:

输入: [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

from typing import List

class Solution:
    def maxProduct(self, nums: List[int]) -> int:
        if len(nums) == 0:
            return 0
        length = len(nums)
        dp = [[0] * 2 for _ in range(length)]
        dp[0][0] = nums[0]
        dp[0][1] = nums[0]
        for i in range(1, length):
            if nums[i] > 0:
                dp[i][0] = min(nums[i], dp[i - 1][0] * nums[i])
                dp[i][1] = max(nums[i], dp[i - 1][1] * nums[i])
            else:
                dp[i][0] = min(nums[i], dp[i - 1][1] * nums[i])
                dp[i][1] = max(nums[i], dp[i - 1][0] * nums[i])
        res = dp[0][1]
        for i in range(1, length):
            res = max(res, dp[i][1])
        return res
if __name__ == '__main__':
    s=Solution()
    print(s.maxProduct([2,3,-2,4]))

2.任意多行字符串拆分数值求和【算法高阶】【字符串匹配】

编写程序,统计每行字符串中若干整数的和。每行字符串中整数间的分隔符可能有逗号“,”、分号“ ;”和空格,有多少行就求多少行。
输入格式:
任意输入若干行由整数构成的字符串(回车换行),整数间以逗号或空格或分号分隔。测试数确保至少有一行数据,字符串中的整数数据均合法有效。最后以一个回车结束输入。
输出格式:
对应输出原输入串(一行中的字符序列),冒号后输出各个整数之和。


输入样例:

1; 2 ,3
2 3; 4
10,20 30; 40
9

输出样例:

1; 2 ,3:6
2 3; 4:9
10,20 30; 40:100

stopword = ''
s = ''
print('请输入内容,输入空行回车结束输入:')
for line in iter(input, stopword):
    s = s + line + "n"
print(s)
l = s.splitlines()
for num in range(0, len(l)):
    one = l[num].replace(',', ' ').replace(';', ' ').split()
    onesum = 0
    for i in range(0, len(one)):
        onesum = onesum + int(one[i])
    print(l[num] + ":" + str(onesum))

3.最短回文串【字符串】【字符串匹配】

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。

示例 1:

输入:s = "aacecaaa"
输出:"aaacecaaa"


示例 2:

输入:s = "abcd"
输出:"dcbabcd"


 

提示:

0 <= s.length <= 5 * 104
s 仅由小写英文字母组成

class Solution:
    def shortestPalindrome(self, s: str) -> str:
        N = len(s)
        idx1 = 0
        for idx2 in range(N - 1, -1, -1):
            if s[idx1] == s[idx2]:
                idx1 += 1
        if idx1 == N:
            return s
        return s[idx1:][::-1] + self.shortestPalindrome(s[:idx1]) + s[idx1:]

s=Solution()
print(s.shortestPalindrome('aabcdeef'))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/732488.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号