问题描述】补充完整函数strrindex(s,t),其功能用于返回字符串t在字符串s中最右边出现的位置.该位置从0开始计数,如果s中不含有t,那么返回-1;在你编写的程序中,使用strrindex(s,t)函数,输入t,s,输出t在s最右边的位置. 【输入形式】控制台分行输入字符串s,t. 【输出形式】控制台输出一个整数,是t在s最右边出现的位置. 【样例输入】The strdup() function new returns a pointer to a new string new 【样例输出】49 【样例说明】输入的第一行为字符串s,第二行为字符串t="new".t在s中出现过两次,其中在最右边出现的位置中"new"的第一个字符“n”;在s中所在的位置为49. def strrindex(s,t): pos = 0 pos1 = -1 while True: pos = s.find(t,pos) if pos == -1: else: pos1 = pos pos = pos + len(t) if __name__ == "__main__": s=input() t=input() print(strrindex(s,t))
时间: 2023-11-22 22:55:34 浏览: 201
这道题的思路是利用字符串函数find()从左往右查找t在s中出现的位置,然后用pos1记录下最后一次出现的位置。代码如下:
```python
def strrindex(s,t):
pos = 0
pos1 = -1
while True:
pos = s.find(t, pos)
if pos == -1:
break
else:
pos1 = pos
pos = pos + len(t)
return pos1
if __name__ == "__main__":
s = input()
t = input()
print(strrindex(s,t))
```
输入样例:
```
The strdup() function new returns a pointer to a new string new
new
```
输出样例:
```
49
```
相关问题
[问题描述]补充完整函数strrindex(s,t),其功能用于返回字符串t在字符串s中最右边出现的位置,该位置从0开始计数,如果s中不含有t,那么返回-1;在你编写的程序中,使用strrindex(s,t)函数输入t,s,输出t在s最右边的位置
下面是完整的函数实现:
```c
int strrindex(char s[], char t[]) {
int i, j, k;
int pos = -1; // 初始化为-1,表示没有找到t在s中的位置
for (i = 0; s[i] != '\0'; i++) {
for (j = i, k = 0; t[k] != '\0' && s[j] == t[k]; j++, k++)
; // 查找t在s中出现的位置
if (k > 0 && t[k] == '\0') // 如果找到了t在s中出现的位置
pos = i; // 更新pos
}
return pos;
}
```
函数中使用了两个循环,外层循环用于遍历s中的每一个字符,内层循环用于查找t在s中出现的位置。如果找到了t在s中出现的位置,就更新pos的值。最后返回pos的值即可。
以下是使用该函数的示例代码:
```c
#include <stdio.h>
int strrindex(char s[], char t[]);
int main() {
char s[] = "hello, world!";
char t[] = "l";
int pos = strrindex(s, t);
printf("%d\n", pos);
return 0;
}
```
输出结果为:
```
10
```
表示t在s中最右边出现的位置是10。
用python实现[问题描述]补充完整函数strrindex(s,t),其功能用于返回字符串t在字符串s中最右边出现的位置,该位置从0开始计数,如果s中不含有t,那么返回-1;在你编写的程序中,使用strrindex(s,t)函数输入t,s,输出t在s最右边的位置
以下是使用 Python 实现 `strrindex(s, t)` 函数的代码:
```python
def strrindex(s, t):
pos = -1 # 初始化为-1,表示没有找到t在s中的位置
for i in range(len(s)-1, -1, -1): # 从后向前遍历s中的每一个字符
if s[i:i+len(t)] == t: # 如果找到了t在s中出现的位置
pos = i # 更新pos
break # 找到了就停止查找
return pos
```
函数中使用了一个循环,从后向前遍历s中的每一个字符,判断是否与t相等。如果找到了t在s中出现的位置,就更新pos的值,然后退出循环。最后返回pos的值即可。
以下是使用该函数的示例代码:
```python
s = "hello, world!"
t = "l"
pos = strrindex(s, t)
print(pos)
```
输出结果为:
```
10
```
表示t在s中最右边出现的位置是10。
阅读全文