算法练习(字符串)
Posted 小小菜_v
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法练习(字符串)相关的知识,希望对你有一定的参考价值。
BM83 字符串变形
描述 对于一个长度为 n 字符串,我们需要对它做一些变形。
首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。
比如"Hello World"变形后就变成了"wORLD hELLO"。
数据范围: 1≤n≤10 ^6 , 字符串中包括大写英文字母、小写英文字母、空格。 进阶:空间复杂度O(n) , 时间复杂度 O(n)
输入描述: 给定一个字符串s以及它的长度n(1 ≤ n ≤ 10^6)
返回值描述:请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。
示例1
输入:"This is a sample",16
返回值:"SAMPLE A IS tHIS"
示例2
输入:"nowcoder",8
返回值:"NOWCODER"
示例3
输入:"ios",3
返回值:"Ios"
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @param n int整型
# @return string字符串
#
class Solution:
def trans(self , s: str, n: int) -> str:
# write code here
strings = " ".join(s.split(" ")[::-1])
return strings.swapcase()
BM84 最长公共前缀
描述 给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。
数据范围:0≤n≤5000, 0≤len(strsi)≤5000 进阶:空间复杂度 O(1),时间复杂度 O(n*len)
示例1
输入:["abca","abc","abca","abc","abcc"]
返回值:"abc"
示例2
输入:["abc"]
返回值:"abc"
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param strs string字符串一维数组
# @return string字符串
#
import sys
sys.setrecursionlimit(1000000)
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
# write code here
# 方式一
if strs == []:
return ''
origin = strs.pop(0)
for s in strs:
min_len = min(len(origin), len(s))
print(origin)
for i in range(min_len):
# print(origin[i])
if origin[i] != s[i]:
return origin[:i]
origin = origin[:min_len]
return origin
# 方式二
# n = len(strs)
# #空字符串数组
# if n == 0:
# return ""
# #遍历第一个字符串的长度
# for i in range(len(strs[0])):
# temp = strs[0][i]
# #遍历后续的字符串
# for j in range(1,n):
# #比较每个字符串该位置是否和第一个相同
# if i == len(strs[j]) or strs[j][i] != temp:
# #不相同则结束
# return strs[0][0:i]
# #后续字符串有整个字一个字符串的前缀
# return strs[0]
BM86 大数加法
描述 以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。
数据范围:s.length,t.length≤100000,字符串仅由’0’~‘9’构成 要求:时间复杂度 O(n)
示例1
输入:"1","99"
返回值:"100"
说明:1+99=100
示例2
输入:"114514",""
返回值:"114514"
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 计算两个数之和
# @param s string字符串 表示第一个整数
# @param t string字符串 表示第二个整数
# @return string字符串
#
class Solution:
def solve(self , s: str, t: str) -> str:
# write code here
if s == '':
s = 0
if t == '':
t = 0
s = int(s)
t = int(t)
return s+t
以上是关于算法练习(字符串)的主要内容,如果未能解决你的问题,请参考以下文章