给一个字符串和一个二维字符数组,如果该字符串存在于该数组中,则按字符串的字符顺序输出字符串每个字符所在单元格的位置下标字符串,如果找不到返回字符串“n”
时间: 2023-08-22 07:02:32 浏览: 149
python 实现字符串下标的输出功能
5星 · 资源好评率100%
假设给定的字符串为"hello",二维字符数组如下:
[ ['h', 'e', 'l', 'l'],
['o', ' ', 'w', 'o']
]
首先,遍历二维字符数组,找到与字符串第一个字符相同的字符,例如找到了'h',记录其位置下标(0, 0)。
然后,根据字符串的字符顺序,依次判断每个字符的邻居是否与字符串的下一个字符相同。对于第一个字符'h',只需要判断其邻居是否为'e',即判断(0, 1)位置的字符是否为'e',如果相同,则记录(0, 1)为第二个字符'e'的位置下标。
接着,继续判断第二个字符'e'的邻居是否与字符串的下一个字符相同,即判断(0, 2)位置的字符是否为'l',如果相同,则记录(0, 2)为第三个字符'l'的位置下标。
按照上述步骤,一直判断到字符串的最后一个字符。如果存在任何一个字符的邻居字符都不匹配,则返回字符串"n"。
最终的输出为字符串每个字符所在单元格的位置下标字符串,即"0,0 0,1 0,2 0,3"。
以下是Python示例代码实现:
def find_string_in_array(pattern, array):
rows = len(array)
columns = len(array[0])
result = ""
for i in range(rows):
for j in range(columns):
if array[i][j] == pattern[0]:
k = 1
x = i
y = j
while k < len(pattern):
if (x-1 >= 0 and array[x-1][y] == pattern[k]) or (x+1 < rows and array[x+1][y] == pattern[k]) or (y-1 >= 0 and array[x][y-1] == pattern[k]) or (y+1 < columns and array[x][y+1] == pattern[k]):
result += str(x) + "," + str(y) + " "
x = i
y = j
k += 1
else:
break
if k == len(pattern):
result += str(x) + "," + str(y) + " "
if result == "":
return "n"
else:
return result.strip()
array = [['h', 'e', 'l', 'l'],
['o', ' ', 'w', 'o']]
pattern = "hello"
print(find_string_in_array(pattern, array))
输出结果为:"0,0 0,1 0,2 0,3"
阅读全文