有一个字符串“ATGACATGCA”,我想搜索“ATGC”,可以在(5, 15)处找到。

如果把“ATGC”分成“A”、“T”和"GC";假设不知道"T”,只查“A”和"GC",那么分别n = (0, 3, 5, 9)和m = (7,)处找到。

“A”的长度1,在n和m的范围中选择合适的数字,5+1+1=7。

“A”所在的位置有四个,如果隔一个字母后要是“GC”的话,那“A”所在位置必须在加1才是“GC”的位置。

习题3:

将一个字符串分成三个部分,第一个子字符串,丢失的部分(长度为1),第二个子字符串。

写出函数constrainedMatchPair。此函数有三个参数:第一个子字符串起始位置的元组;第二个子字符串起始位置的元组;第一个子字符串的长度。

函数能够返回所有第一个组元中的所有数据(n),此数据能够和第二个组元中的数据(k),满足n+m+1 = k,m为第一个字字符串的长度。

函数按如下定义,

def constrainedMatchPair(firstMatch,secondMatch,length):

def constrainedMatchPair(firstMatch, secondMatch, length):m = lengthmatch = ()for n in firstMatch:for k in secondMatch:if n + m + 1 == k:match = match + (n,)return match

然后通过subStringMatchOneSub来验证,此函数要用到之前的subStringMatchExact

通过bing就能很容易搜到ps3_template.py:

所有代码如下:

from string import finddef subStringMatchExact(target, key):tuple = ()order = 0while find(target, key, order) != -1:tuple = tuple + (find(target, key, order),)order = find(target, key, order) + 1return tupledef constrainedMatchPair(firstMatch, secondMatch, length):m = lengthmatch = ()for n in firstMatch:for k in secondMatch:if n + m + 1 == k:match = match + (n,)return match# this is a code file that you can use as a template for submitting your
# solutions# these are some example strings for use in testing your code#  target stringstarget1 = 'atgacatgcacaagtatgcat'
target2 = 'atgaatgcatggatgtaaatgcag'# key stringskey10 = 'a'
key11 = 'atg'
key12 = 'atgc'
key13 = 'atgca'### the following procedure you will use in Problem 3def subStringMatchOneSub(key,target):"""search for all locations of key in target, with one substitution"""allAnswers = ()for miss in range(0,len(key)):# miss picks location for missing element# key1 and key2 are substrings to matchkey1 = key[:miss]key2 = key[miss+1:]print 'breaking key',key,'into',key1,key2# match1 and match2 are tuples of locations of start of matches# for each substring in targetmatch1 = subStringMatchExact(target,key1)match2 = subStringMatchExact(target,key2)# when we get here, we have two tuples of start points# need to filter pairs to decide which are correctfiltered = constrainedMatchPair(match1,match2,len(key1))allAnswers = allAnswers + filteredprint 'match1',match1print 'match2',match2print 'possible matches for',key1,key2,'start at',filteredreturn allAnswersfor key in (key10, key11, key12, key13):for target in (target1, target2):print subStringMatchOneSub(key,target)

习题4:

写一个函数subStringMatchExactlyOneSub,有两个参数:目标字符串和关键词字符串。返回关键词中有一个不同在目标中的起始位置的元组。

def subStringMatchExactlyOneSub(target,key):

def subStringMatchExactlyOneSub(target,key):possible = subStringMatchOneSub(key,target)certain = subStringMatchExact(target, key)one = ()for p in possible:for c in certain:if p == c:breakelif c == certain[-1]:one = one + (p,)return one

麻省理工学院公开课:计算机科学及编程导论习题3下相关推荐

  1. 麻省理工学院公开课:单变量微积分习题课

    http://open.163.com/special/opencourse/calculus.html [第1集] 课程简介 (已看) [第2集] 导数的定义 (已看) [第3集] 导数的图像 (已 ...

  2. Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》

    Python语言用urllib.request模块抓取页面非常简单,再将抓取的页面内容用re模块解析,找出自己想要的东西.下面就就此方法来抓取网易公开课之<麻省理工学院公开课:算法导论>, ...

  3. 麻省理工学院公开课:计算机科学及编程导论习题2

    习题1: 已知6a + 9b + 20c = n,当n = 50, 51, 52,53, 54, 55时,a.b.c有自然数解(我不知道现在是怎么定义的,但我以前学的时候自然数包括0), 如何求出n ...

  4. 计算机教学及其编程视频教学,计算机科学及编程导论教学视频

    全集 http://video.1kejian.com/university/open/13647/ 评分: 5(力荐)分 视频类型: 人气:372 次点播 更新时间:2012-09-14 22:39 ...

  5. 计算机科学与python编程导论_【基于Python】MIT OCW 计算机科学与编程导论

    [基于Python]MIT OCW 计算机科学与编程导论 (MIT Course Number 6.0001)Introduction to Computer Science and Programm ...

  6. 麻省电气工程与计算机科学专业,美国留学 麻省理工学院电气工程与计算机科学理科专业介绍...

    关于美国麻省理工学院(Massachusetts Institute of Technology) 麻省理工学院体育馆 美国麻省理工学院(Massachusetts Institute of Tech ...

  7. 麻省理工公开课:线性代数》中文笔记来了

    MLNLP社区在Github上最新发布了一套MIT线性代数课程Linear Algebra的学习笔记,目前已获得1600star.项目简介如下所示,欢迎大家关注! 1.项目动机 <麻省理工公开课 ...

  8. 算法导论-麻省理工公开课-百度云

    资源来源于网络,若有侵权,请告知,我会在24小时之内删除~~ 我整理的资源已汇总,请访问:资源汇总贴,选择自己还需要的资源~ 算法导论的视频教程,算法导论,算法中的圣经啊.分享麻省理工的公开课,需要的 ...

  9. 电气工程学计算机,麻省理工学院电气工程与计算机科学专业解读

    2015年US News研究生专业排名中麻省理工学院工程学院下的电气工程与计算机科学全美第二,麻省理工学院本身不论是综合排名还是具体到某个学科都是部分国际学生的梦想学校.接下来,就来具体了解一下麻省理 ...

  10. 麻省电气工程与计算机科学专业,麻省理工学院电气工程与计算机科学专业解读...

    编者按:2015年US News研究生专业排名中麻省理工学院工程学院下的电气工程与计算机科学全美第二,麻省理工学院本身不论是综合排名还是具体到某个学科都是部分国际学生的梦想学校. 2015年US Ne ...

最新文章

  1. Android系统编译so库提示error undefined reference to '__android_log_print问题的解决
  2. proximinty
  3. 四个好用却可能不为人所熟知的Pandas函数,建议收藏!!!
  4. SpringBoot+Nacos+Seata实现Dubbo分布式事务管理
  5. 高并发与负载均衡-nginx-反向代理概念
  6. Spring使用经验之Listener综述
  7. Navicat Premium11.0.16 for mac 中文破解版
  8. JAVA_OPTS设置详解
  9. 工厂模式简介和应用场景
  10. outlook客户端 outlook.com邮箱设置方法
  11. ios正式包ipa,发布苹果应用商店App Store
  12. harbor高可用部署
  13. 我的Crystal xcelsius之旅
  14. iPhone开发Blog
  15. Javascript基础*
  16. js前端通过身份证号判断年龄、性别、出生日期。
  17. 一枚小江湖视角下的 2020
  18. Python转换过程单双号处理(转载)
  19. AndroidStudio近场通信
  20. 实时操作系统UCOS学习笔记5----UCOSIII移植

热门文章

  1. 搭建网站服务器必须开443端口,HTTPS端口必须一定要443吗?
  2. 网络安全-MySQL数据库
  3. 魔兽世界燃烧的远征服务器状态,6月2日加入“燃烧的远征” 立刻了解《魔兽世界》经典怀旧服的服务器抉择...
  4. 什么才是【Python】中的鸭子类型和猴子补丁
  5. Python | Web Crawler
  6. 计算并返回 x 的 算术平方根
  7. Mysql 同步 1236_MySQL主从同步报error 1236
  8. linux 网络速度非常慢,Linux认证:解决ubuntu8.10上网速度慢的问题
  9. Linux内核5.0版本五大模块及内核书籍推荐
  10. C++Primer第五版 第六章 课后习题答案