鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[已解决]Python:每日一题 292

[复制链接]
 楼主| 发表于 2019-12-21 22:10:20 | 显示全部楼层
fengo0 发表于 2019-12-20 22:02
def solve(str1):
    str2 = str1[::-1]
    length = len(str1)

解答错误

输入:""
输出;None
预期结果:""
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-21 22:11:55 | 显示全部楼层
TJBEST 发表于 2019-12-20 22:18
我写了一个程序 大概20分钟,可能有瑕疵

会超时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-21 22:12:54 | 显示全部楼层
_2_ 发表于 2019-12-21 21:53
哇,连小甲鱼都来了

??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-21 22:16:53 | 显示全部楼层

解答错误

输入:"abcd"
输出:"abcdcba"
预期结果:"dcbabcd"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-21 22:19:42 | 显示全部楼层

解答错误

输入:""
输出;None
预期结果:""
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 22:26:11 | 显示全部楼层

好嘛,我老是忘掉 for 没进入循环的情况。
  1. def solve(s:str)->str:
  2.     '''
  3.     用最短方式在前方添加字符使其成为回文
  4.     '''
  5.     le = len(s)
  6.     rs = ''.join(reversed(s))
  7.     d = 0
  8.     for d in range(le):
  9.         #print('调试',s[:le-d],rs[d:])
  10.         if s[:le-d] == rs[d:]:
  11.             break
  12.     return rs[:d] + s

  13. if __name__ == '__main__':
  14.     '''
  15.     print('示例1 输出:',solve("aacecaaa"))
  16.     print('示例2 输出:',solve('abcd'))
  17.     print('自测 输出:',solve('aca'))
  18.     '''
  19.     import random
  20.     def get(n:int):
  21.         alpha = 'abcdefghijklmnopqrstuvwxyz'
  22.         for i in range(n):
  23.             yield random.choice(alpha)
  24.    
复制代码

解决报错问题

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +3 收起 理由
zltzlt + 3 + 3 + 3 80 ms

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 22:28:45 | 显示全部楼层
_2_ 发表于 2019-12-21 21:53
哇,连小甲鱼都来了

恩姆?

                               
登录/注册后可看大图

你们小号之间是有联络吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 22:29:34 | 显示全部楼层
本帖最后由 hrp 于 2019-12-21 22:32 编辑
zltzlt 发表于 2019-12-21 22:16
解答错误

输入:"abcd"


看错题了,只能在前面添加

  1. def func292(s):
  2.     if s == s[::-1]:
  3.         return s
  4.     n = 1
  5.     z = len(s)
  6.     while n <= z:
  7.         r = s[:-(n+1):-1] + s
  8.         if r != r[::-1]:
  9.             n += 1
  10.             continue
  11.         return r
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +2 收起 理由
zltzlt + 3 + 3 + 2 848 ms

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 23:05:03 | 显示全部楼层
_2_ 发表于 2019-12-21 21:53
哇,连小甲鱼都来了


不知道谁改我头像了以前的头像贼漂亮,贼性感,找不到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 23:06:39 | 显示全部楼层

不知道何种字符串超时? 我看看那种出的问题  我自己测试 没啥大问题 也许您测试字符初串满足啥特性吧 不介意的话您可以指明一下或者把您的测试文件 告诉我  ‘a’*40000 我测了很快 1000个字符的都挺快的  我用您程序试一试找找问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 23:18:59 | 显示全部楼层
我的答案直接就被忽视了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 23:19:39 | 显示全部楼层
Stubborn是小甲鱼?难怪头像有点像
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 23:24:51 | 显示全部楼层
本帖最后由 凌九霄 于 2019-12-21 23:48 编辑
  1. def func292(s):
  2.     x, y, z = s, '', 1
  3.     while 1:
  4.         if x != x[::-1]:
  5.             y += s[-z]
  6.             x = y + s
  7.             z += 1
  8.         else:
  9.             return x
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +2 收起 理由
zltzlt + 3 + 3 + 2 724 ms

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-21 23:33:06 | 显示全部楼层
str=input("输入")
print(str[::-1]+str[1:])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-22 00:21:00 | 显示全部楼层
zltzlt 发表于 2019-12-21 22:09
建议楼主提高时间复杂度。提示:翻转字符串使用 s[::-1]。

一直以为slice类只有起止两个参数,没想到还有步长
学到了学到了
  1. def solve(s):
  2.     def reverse_check(s):
  3.         for i in range(len(s)//2):
  4.             if s[i] != s[-1-i]:
  5.                 return False
  6.         return True
  7.     if reverse_check(s):
  8.         return s
  9.     else:
  10.         for i in range(1, len(s)):
  11.             if reverse_check(s[:-i]):
  12.                 return s[::-1] + s
复制代码

评分

参与人数 1鱼币 +1 收起 理由
zltzlt + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-22 07:10:42 | 显示全部楼层
Stubborn 发表于 2019-12-21 23:05
不知道谁改我头像了以前的头像贼漂亮,贼性感,找不到了

......
性感是什么鬼?!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-22 09:32:16 | 显示全部楼层
fan1993423 发表于 2019-12-21 23:18
我的答案直接就被忽视了吗?

抱歉,昨天没测试到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-22 09:44:27 | 显示全部楼层
133614 发表于 2019-12-21 23:33
str=input("输入")
print(str[::-1]+str[1:])

有误,请再想想
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-22 09:46:20 | 显示全部楼层
Unicorn# 发表于 2019-12-22 00:21
一直以为slice类只有起止两个参数,没想到还有步长
学到了学到了

解答错误

输入:"aacecaaa"
输出:"aaacecaaaacecaaa"
预期结果:"aaacecaaa"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-22 12:40:23 | 显示全部楼层
zltzlt 发表于 2019-12-22 09:46
解答错误

输入:"aacecaaa"
  1. def solve(s):
  2.     def reverse_check(s):
  3.         for i in range(len(s)//2):
  4.             if s[i] != s[-1-i]:
  5.                 return False
  6.         return True
  7.     if reverse_check(s):
  8.         return s
  9.     else:
  10.         for i in range(1, len(s)):
  11.             if reverse_check(s[:-i]):
  12.                 return s[-1:-i-1:-1] + s
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表