输入一个字符串,判断该字符串里是否有123子串,若有,输出第一个123的位置,若没有输出NO
时间: 2023-09-24 10:06:49 浏览: 88
### 回答1:
以下是一个简单的实现:
```python
def find_123(s):
for i in range(len(s) - 2):
if s[i:i+3] == '123':
return i
return 'NO'
s = input('请输入字符串:')
print(find_123(s))
```
如果输入的字符串中包含123子串,则输出第一个123的位置;否则输出NO。
### 回答2:
可以使用遍历的方法判断字符串中是否存在"123"子串。具体的实现步骤如下:
1. 定义一个变量index用于记录"123"子串的位置,默认值为-1。
2. 使用一个循环遍历字符串,遍历的范围为0到字符串长度减去2,因为判断的是三个字符的子串。
3. 在循环中,使用切片方式将当前位置及其后续两个字符组成的子串提取出来,判断是否为"123"。
4. 如果是"123"子串,则将index的值更新为当前位置,并跳出循环。
5. 在循环结束后,根据index的值判断是否存在"123"子串。若index的值为-1,则输出"NO",否则输出index的值。
以下是具体的实现代码:
```python
def find_123_substring(s):
index = -1
for i in range(len(s)-2):
if s[i:i+3] == "123":
index = i
break
if index == -1:
return "NO"
else:
return index
# 测试代码
s = input("请输入一个字符串: ")
print("结果为:", find_123_substring(s))
```
注意:上述代码中,假设了输入的字符串只包含数字字符。如果需要处理其他类型的字符,需要进行相应的判断和处理。
### 回答3:
可以使用遍历的方式判断字符串中是否存在"123"子串。具体过程如下:
1. 首先定义一个变量position,表示找到的第一个"123"子串的起始位置,默认值为-1。
2. 开始遍历字符串,检查每个字符与"1"是否相等。
3. 如果找到了字符"1",则进一步判断后面两个字符是否分别为"2"和"3"。
4. 如果满足上述条件,将position设为当前字符的位置,并跳出循环。
5. 循环结束后,判断position是否仍然是默认值,如果是则说明没有找到"123"子串,输出"NO";否则,输出position的值。
下面是对应的示例代码:
```python
def find_123_substring(string):
position = -1
for i in range(len(string)-2):
if string[i] == "1" and string[i+1] == "2" and string[i+2] == "3":
position = i
break
if position == -1:
print("NO")
else:
print(position)
# 示例输入和输出
find_123_substring("abcdefghijklmno123pqrstuvwxyz") # 输出:13
find_123_substring("abcdefghijklmnopqrstuvwxyz") # 输出:NO
```
以上代码中,find_123_substring函数接受一个字符串作为参数,然后按照上述步骤进行判断,最后打印结果。示例输入为"abcdefghijklmno123pqrstuvwxyz"和"abcdefghijklmnopqrstuvwxyz",分别输出13和NO。
阅读全文