鱼C论坛

 找回密码
 立即注册
查看: 2587|回复: 5

[已解决]作业29,动动手,0

[复制链接]
发表于 2022-7-11 13:32:59 | 显示全部楼层 |阅读模式
1鱼币
a=input("text:")
b=input("words:")
c=b.split() #因为如果有多个的话,有空格就代表不是一个,所以分开
d=[]
for i in c: #有多少就遍历多少
    for j in range(a.count(i)): #如果一个字符在字符串里有很多个,那就一个一个遍历,直到结束
        if j==0: #之所以有两种情况,是因为表达式不一样
            e=a.index(i) #找到第一个字符的位置
            d.append([e,e+len(i)-1]) #将第一个字符的位置加上第一个字符的长度,就可得到第一个元素,如果a.count(i)==1,这个循环结束
        if j>0:
            e=a.index(i,e+1,-1) #当a.count(i)>1时,接着寻找i,但是要给出范围,除去前面寻找的那个字符,e+1就可以避免了
            d.append([e,e+len(i)-1])
f=d.sort() #把d的结果从小到大排序
print (f)
# 最后,感觉自己想的没毛病,难道是自己的一厢情愿?
最佳答案
2022-7-11 13:33:00
紧张学习 发表于 2022-7-11 16:30
不好意思,不好意思
问题如下: 给定一个字符串 text 和字符串列表 words,返回 words 中每个单词在 tex ...

三个问题:
1.string.count(str)是不会数与上一次数的重复的字符串
举个例子:
  1. >>> a = "FCFCF"
  2. >>> a.count("FCF")
  3. 1
复制代码

有两个FCF,但count函数只数了一个,所以你不能用count函数
2.string.index(str, e+1, -1)
你这样写的话是不会数最后一个的
需改成string.index(str,e+1,len(string))
3.list.sort()没有返回值
举个例子:
  1. >>> li = [2,1]
  2. >>> print(li.sort())
  3. None
  4. >>> print(li)
  5. [1,2]
复制代码

所以f=d.sort()应该为d.sort()

代码:
  1. a=input("text:")
  2. b=input("words:")
  3. c=b.split() #因为如果有多个的话,有空格就代表不是一个,所以分开
  4. d=[]
  5. for i in c: #有多少就遍历多少
  6.     temp = a
  7.     count = 0
  8.     while True:
  9.         idx = temp.find(i)
  10.         if idx == -1:
  11.             break
  12.         temp = temp[idx+1:]
  13.         count += 1
  14.     for j in range(count): #如果一个字符在字符串里有很多个,那就一个一个遍历,直到结束
  15.         if j==0: #之所以有两种情况,是因为表达式不一样
  16.             e=a.index(i) #找到第一个字符的位置
  17.             d.append([e,e+len(i)-1]) #将第一个字符的位置加上第一个字符的长度,就可得到第一个元素,如果a.count(i)==1,这个循环结束
  18.         if j>0:
  19.             e=a.index(i,e+1,len(a)) #当a.count(i)>1时,接着寻找i,但是要给出范围,除去前面寻找的那个字符,e+1就可以避免了
  20.             d.append([e,e+len(i)-1])
  21. d.sort() #把d的结果从小到大排序
  22. print(d)
  23. # 最后,感觉自己想的没毛病,难道是自己的一厢情愿?
复制代码

最佳答案

查看完整内容

三个问题: 1.string.count(str)是不会数与上一次数的重复的字符串 举个例子: 有两个FCF,但count函数只数了一个,所以你不能用count函数 2.string.index(str, e+1, -1) 你这样写的话是不会数最后一个的 需改成string.index(str,e+1,len(string)) 3.list.sort()没有返回值 举个例子: 所以f=d.sort()应该为d.sort() 代码:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-7-11 13:33:00 | 显示全部楼层    本楼为最佳答案   
紧张学习 发表于 2022-7-11 16:30
不好意思,不好意思
问题如下: 给定一个字符串 text 和字符串列表 words,返回 words 中每个单词在 tex ...

三个问题:
1.string.count(str)是不会数与上一次数的重复的字符串
举个例子:
  1. >>> a = "FCFCF"
  2. >>> a.count("FCF")
  3. 1
复制代码

有两个FCF,但count函数只数了一个,所以你不能用count函数
2.string.index(str, e+1, -1)
你这样写的话是不会数最后一个的
需改成string.index(str,e+1,len(string))
3.list.sort()没有返回值
举个例子:
  1. >>> li = [2,1]
  2. >>> print(li.sort())
  3. None
  4. >>> print(li)
  5. [1,2]
复制代码

所以f=d.sort()应该为d.sort()

代码:
  1. a=input("text:")
  2. b=input("words:")
  3. c=b.split() #因为如果有多个的话,有空格就代表不是一个,所以分开
  4. d=[]
  5. for i in c: #有多少就遍历多少
  6.     temp = a
  7.     count = 0
  8.     while True:
  9.         idx = temp.find(i)
  10.         if idx == -1:
  11.             break
  12.         temp = temp[idx+1:]
  13.         count += 1
  14.     for j in range(count): #如果一个字符在字符串里有很多个,那就一个一个遍历,直到结束
  15.         if j==0: #之所以有两种情况,是因为表达式不一样
  16.             e=a.index(i) #找到第一个字符的位置
  17.             d.append([e,e+len(i)-1]) #将第一个字符的位置加上第一个字符的长度,就可得到第一个元素,如果a.count(i)==1,这个循环结束
  18.         if j>0:
  19.             e=a.index(i,e+1,len(a)) #当a.count(i)>1时,接着寻找i,但是要给出范围,除去前面寻找的那个字符,e+1就可以避免了
  20.             d.append([e,e+len(i)-1])
  21. d.sort() #把d的结果从小到大排序
  22. print(d)
  23. # 最后,感觉自己想的没毛病,难道是自己的一厢情愿?
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-7-11 15:19:22 | 显示全部楼层
注释没少打,但不知道你想实现啥
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-7-11 16:25:01 | 显示全部楼层
wp231957 发表于 2022-7-11 15:19
注释没少打,但不知道你想实现啥

那不是注释,是问一下我的想法哪出现了问题,实现的就是问题0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-7-11 16:25:52 | 显示全部楼层
紧张学习 发表于 2022-7-11 16:25
那不是注释,是问一下我的想法哪出现了问题,实现的就是问题0

问题是绝大多数人都不知道问题0是什么鬼  好吃吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-7-11 16:30:32 | 显示全部楼层
wp231957 发表于 2022-7-11 16:25
问题是绝大多数人都不知道问题0是什么鬼  好吃吗

不好意思,不好意思
问题如下: 给定一个字符串 text 和字符串列表 words,返回 words 中每个单词在 text 中的位置(要求最终的位置从小到大进行排序)。
text:"I love FishC and FishC love me"
words:"FishC"
输出:[[7, 11], [17, 21]]

text:"I love FishC and FishC love me"
words:"FishC love"
输出:[[2, 5], [7, 11], [17, 21], [23, 26]]

text:"FCFCF"
words:"FCF FC"
输出:[[0, 1], [0, 2], [2, 3], [2, 4]]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-28 11:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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