题解:蓝桥云课 1371 回文判定
【题目来源】
蓝桥云课:1.回文判定 - 蓝桥云课 (lanqiao.cn)
【题目描述】
给定一个长度为 \(n\) 的字符串 \(S\)。请你判断字符串 \(S\) 是否回文。
【输入】
输入仅1行包含一个字符串 \(S\)。
\(1≤|S|≤10^6\),保证S只包含大小写、字母。
【输出】
若字符串 \(S\) 为回文串,则输出Y,否则输出N。
【输入样例】
abcba
【输出样例】
Y
【算法标签】
《蓝桥云课 1371 回文判定》 #字符串# #模拟# #双指针#
【代码详解】
s = input() # 获取输入字符串
l, r = 0, len(s)-1 # 初始化左右指针:l指向开头,r指向末尾
ok = 'Y' # 默认标记为是回文
# 使用双指针法检查回文
while l <= r:
if s[l] == s[r]: # 如果左右字符相同
l += 1 # 左指针右移
r -= 1 # 右指针左移
else: # 如果字符不同
ok = 'N' # 标记不是回文
break # 提前结束循环
print(ok) # 输出结果
【运行结果】
abcba
Y
浙公网安备 33010602011771号