Board logo

标题: [原创代码] Python取一列数中连续最长的奇数个数 [打印本页]

作者: 依山居    时间: 2015-11-21 08:21     标题: Python取一列数中连续最长的奇数个数

如果输入有两位数以上如47...那完蛋。
  1. """
  2. python正则取一列数中连续最长的奇数个数.py
  3. 题目来源http://www.oschina.net/code/snippet_2519674_52255
  4. 大费周折地使用正则表达式来干这事~~
  5. 依山居 8:20 2015/11/21
  6. """
  7. a=[2,3,3,0,0,2,4,7,5,7]
  8. import re
  9. rn=[i for i in range(0,10) if (i%2!=0)]    #rn=[1, 3, 5, 7, 9]
  10. res=str(rn).replace(",","")+"+"    #res='[1 3 5 7 9]+'
  11. s=''.join([str(i) for i in a])    #s='2330024757'
  12. rec=re.compile(res)
  13. result=re.findall(rec,s)     #result=['33', '757']
  14. print(max([len(s) for s in result]))
复制代码

作者: 依山居    时间: 2015-11-21 09:15

  1. """
  2. python算出连续是奇数最大次数.py
  3. 题目来源: http://www.oschina.net/code/snippet_2519674_52255
  4. 依山居 8:52 2015/11/21
  5. 不以结婚为目的地把程序拼成一行就是耍流氓
  6. 原理是偶数返回字符串0,奇数1,以0切分成,剩下的都为1的元素,再统计连续1最长的元素
  7. """
  8. a=[2,3,3,0,0,2,4,7,5,7,324,4234,345,353,5444,55,45,9,8,69,459,469,9]
  9. print(max([len(r) for r in (''.join([str(0) if (i%2 ==0) else str(1) for i in a]).split("0"))]))
复制代码

作者: 依山居    时间: 2015-11-25 20:27

  1. #模式匹配方法2 改进(= =折腾死了),可以处理两位及正负号的情况
  2. a=[2,3,3,0,0,2,4,7,5,7,24234,24234,5345,564,464,242,-34,-89,-67,-2341,999,9,9,99]
  3. import re
  4. a=' '.join([str(r) for r in a])
  5. a=re.sub(r"[-+]?\d*[13579]","1",a)
  6. a=re.sub(r"[-+]?\d*[24680]","0",a)
  7. a=a.replace(" ","").split("0")
  8. print(max([len(r) for r in a]))
复制代码

作者: 慕夜蓝化    时间: 2015-11-27 13:27

python如何够跳转指定磁盘?
跳转目录可以用os.chdir("/") 这种方式来实现。
但是跳转磁盘的话,却不可以,试了几次从C盘跳到D盘,都没有成功,不知道是哪里出了问题。
作者: pcl_test    时间: 2015-11-27 13:40

回复 4# 慕夜蓝化


    os.chdir("D:\\")
作者: 慕夜蓝化    时间: 2015-11-27 13:43

回复 5# pcl_test


    嗯嗯!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2