这是我得到的任务:
给定一串均匀长度,返回上半场。所以字符串“WooHoo”产生“Woo”。
first_half('WooHoo') → 'Woo'
first_half('HelloThere') → 'Hello'
first_half('abcdef') → 'abc'
这是我的解决方案:
def first_half(str):
if len(str) % 2 == 0:
b = len(str) // 2
return str[:b]
我的问题是:
你能用Python向我展示一个更简单的解决方案吗?这个解决方案不要求我使用一个变量作为字符串长度的一半(b)?
答案 0 :(得分:2)
在python中:
str = "WooHoo"
str = str[:-len(str)/2]
答案 1 :(得分:1)
在python中:
return str[0: int(len( str )/2)];
这里无需检查它是偶数还是奇数。 len( str )/2
将围绕自己。
在问题重新编辑之前回答:
在Javascript中:
var str = "WooHoo";
if (str.length%2 == 0) {
console.log(str.substr(0, str.length / 2));
}
答案是Woo
。
或者只是使用:
str.substr(0, str.length / 2);
无需检查if (str.length%2 == 0)
。
其他语言也具有length
属性和substring
功能。
答案 2 :(得分:1)
你在寻找这样的东西:
def first_half(str):
if len(str) % 2 == 0:
return str[:len(str) // 2]
或者可能是这样的?
def first_half(str):
return str[:len(str) // 2 if len(str) % 2 == 0 else 0]
这是非常模糊的,因为你没有解释当提供不均匀长度的字符串时该怎么做。
答案 3 :(得分:1)
这是最简单直接的解决方案。
一直运行到字符串的中间,这里//
用于确认除以奇数长度后,除数后我只会得到int值。
def first_half(str):
return str[:(len(str)//2)]
答案 4 :(得分:0)
def first_half(str): calc = len(str)/ 2 如果计算: 返回str [:calc]
其他: 如果len(str)<= 0: 返回str
first_half('abcdef')