📣 独立日限时特惠: VIP通行证立减$68
查看: 3562| 回复: 32
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] python code求助

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
Define a procedure, find_last, that takes as input
two strings, a search string and a target string,
and returns the last position in the search string
where the target string appears, or -1 if there
are no occurences.
.google  и
Example: find_last('aaaa', 'a') returns 3

Make sure your procedure has a return statement.

下面是我的code,请问哪里出问题了?
def find_last(s,t):
    pos=s.find(t)
    if pos==-1:
       return pos
    else:
        while pos!=-1:
              pos=s.find(t,pos+1)
              return pos

上一篇:关于面试算法,ACM算法,工作用的算法
下一篇:请教:如何加CS相关领域的 mail list ?
🔗
RehsuR 2012-5-2 08:19:26 | 只看该作者
全局:
你的while 判断是pos!=1, 意思是说只要找到了就可以跳出了,但实际上你会找到多个,需要返回的是最后一个
回复

使用道具 举报

🔗
 楼主| happyannie 2012-5-2 08:22:28 | 只看该作者
全局:
回复 2# RehsuR
谢谢R姐姐的回帖,也谢谢你在我另一个帖子里的鼓励
从昨天晚上一直都在想这个题目,都没想通-baidu 1point3acres
请问怎么才能让python return最后一个loop的结果呢
回复

使用道具 举报

🔗
RehsuR 2012-5-2 08:24:18 | 只看该作者
全局:
其实这个method不是一句话就完事儿了吗?
print(s.rfind(t))
回复

使用道具 举报

🔗
RehsuR 2012-5-2 08:24:41 | 只看该作者
全局:
回复  RehsuR
谢谢R姐姐的回帖,也谢谢你在我另一个帖子里的鼓励
从昨天晚上一直都在想这个题目,都没想通
请问怎么才能让python return最后一个loop的结果呢
happyannie 发表于 2012-5-1 18:22


看四楼,用rfind
回复

使用道具 举报

🔗
 楼主| happyannie 2012-5-2 08:27:29 | 只看该作者
全局:
这是udacity unit2的一个hw题目,还没学过rfind,可能需要用那些学过的方程,我刚刚忽然想通了,把code写好了,呵呵
回复

使用道具 举报

🔗
0864 2012-5-2 18:46:42 | 只看该作者
全局:
回复 6# happyannie


    善用Python内置的帮助文档!
回复

使用道具 举报

🔗
RehsuR 2012-5-3 00:38:07 | 只看该作者
全局:
这是udacity unit2的一个hw题目,还没学过rfind,可能需要用那些学过的方程,我刚刚忽然想通了,把code写好了,呵呵
happyannie 发表于 2012-5-1 18:27


你最后的解法是?
非要自己实现的话。。我立马就能想到的一个naive算法是,把string reverse一下,然后用find找出来index,然后再算回original index,就是不知道reverse会不会太慢。。。=.= 只管实现不管optimize,哈哈
回复

使用道具 举报

🔗
 楼主| happyannie 2012-5-3 01:01:46 | 只看该作者
全局:
def find_last(s,t):
    pos=s.find(t). Χ
    if pos==-1:
       return pos
    else:. Waral dи,
        while pos!=-1:
              lastpos=pos
              pos=s.find(t,pos+1).
        return lastpos.
              . .и
  这个是我写的
回复

使用道具 举报

🔗
 楼主| happyannie 2012-5-3 01:12:48 | 只看该作者
全局:
def find_last(s, t):
    last_pos=-1.--
    while True:
            pos=s.find(t,last_pos+1)
                if pos==-1:. 1point 3acres
                    return last_pos
            last_pos=pos

这个是标准答案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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