鱼C论坛

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

Python:每日一题 277

[复制链接]
发表于 2019-11-18 22:48:23 | 显示全部楼层

这函数本身就全部替换,没必要用一个循环来替换吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-18 23:07:05 | 显示全部楼层
  1. def check(string):
  2.         return 'xyz' in string.replace('.x', '')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-18 23:30:13 | 显示全部楼层
peicd 发表于 2019-11-18 22:48
这函数本身就全部替换,没必要用一个循环来替换吧。

之前想错了
  1. def solve(s):
  2.     return 'xyz' in s.replace('.xyz', ' ')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 10:28:20 | 显示全部楼层
笨方法
  1. def fun(s):
  2.     if 'xyz' in s:
  3.         if '.' in s:
  4.             if s.index('.') > s.index('xyz'):
  5.                 return True
  6.             else:
  7.                 return False
  8.         else:
  9.             return True
  10.     else:
  11.         return False

  12. print(fun('abcxyz'))
  13. print(fun('abc.xyz'))
  14. print(fun('xyz.abc'))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 10:31:39 | 显示全部楼层
  1. def fun277(x):
  2.     if x.count('xyz') and x.count('xyz') > x.count('.xyz'):
  3.         return True
  4.     return False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 11:03:34 | 显示全部楼层

x.xyzyz这种情况?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 11:34:44 From FishC Mobile | 显示全部楼层
def zcm(str0):
    l1 = ".xyz"
    l2 = "xyz"
    if l1 in str0:
        str0 = str0.replace(l1,"")  
    if l2 in str0:
        print ("True")
    else:
        print ("False")
        
str0 = input("请输入一个字符串:")
zcm(str0)

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

使用道具 举报

发表于 2019-11-19 12:28:23 | 显示全部楼层
  1. import re
  2. def getxyz(s):
  3.     if len(re.findall('xyz',s))>len(re.findall('.xyz',s)):
  4.         return True
  5.     else:
  6.         return False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 12:32:12 | 显示全部楼层

def fun277(S,Stosearch):
    indexA = S.find(Stosearch)
    if(indexA!=-1):
        if(S[indexA-1]=='.'):
             print('Ture')
        else:
             print('False')
    else:
         print('False')
         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 12:52:25 | 显示全部楼层
def fun277(S,Stosearch):
    return True if ('.'+Stosearch) in S else False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 13:10:09 From FishC Mobile | 显示全部楼层
__mrsq__ 发表于 2019-11-19 11:03
x.xyzyz这种情况?

那就不要替换为空的字符,替换成其他的,例如替换成"~"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 17:48:41 | 显示全部楼层

你好,大侠,你的程序 我运行了一下,

输入:abc.xxyz 和 .xyzxyz.abc
返回:False
预期:True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 17:54:35 | 显示全部楼层
都淡忘 发表于 2019-11-18 22:48
我先理解一下题意思。题目是:
给定一个字符串 s,如果 'xyz' 在 s 中出现过,并且 'xyz' 前面没有 '.' 符 ...

你好,大侠,你这个程序区分大小写,如何能不区分大小呢~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 18:04:34 | 显示全部楼层

你好,大侠,你的程序
输入:abc.xxyz、.xyzxyz.abc、.xyz.abcxyz
返回:False
预期:True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 18:29:33 | 显示全部楼层
def find_xyz(s:str) -> bool:
    n = s.count('xyz') - s.count('.xyz')
    return True if n>0 else False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 18:43:50 | 显示全部楼层
  1. def fun277(s):
  2.     return True if 'xyz' in s and '.xyz' not in s else False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 18:57:14 | 显示全部楼层
突然发现和冬雪的答案是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 21:00:27 | 显示全部楼层
  1. def fun277(string):
  2.         if "xyz" in string.replace(".xyz",""):
  3.                 return True
  4.         else:
  5.                 return False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-19 22:20:09 | 显示全部楼层
def fun277(s):
    list=[]
    list1=['.','x','y','z']
    for i in s:
        if i=='.':
            list=[]
            list.append(i)
        elif i=='x':
            list.append(i)
        elif i=='y':
            list.append(i)
        elif i=='z':
            list.append(i)
        else:
            list=[]
        if list==list1:
            return True
    return False
print(fun277('.xyzxyz'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-20 11:27:23 | 显示全部楼层
luojie25 发表于 2019-11-19 17:54
你好,大侠,你这个程序区分大小写,如何能不区分大小呢~~~

正则的话直接解除封印,不区分大小写加入re.IGNORECASE,这是最快的
第二种的话手写的话,那把xyz所有大小写封装作为参数,输入函数执行就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 15:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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