oppo字符串
[题目链接](https://www.nowcoder.com/practice/f4005d9b87984674a9a1bad7dd7d44c9)
思路
本题要求判断一个长度为 4 的字符串是否为 oppo 型字符串。
定义
oppo 型字符串需要同时满足两个条件:
- 是回文串:即
且
- 第一个字符不等于第二个字符:即
分析
以 oppo 为例:
oo✓
pp✓
op✓
三个条件都满足,输出 Yes。
以 aaaa 为例:虽然是回文串,但
a,不满足第二个条件,输出 No。
实现
直接按定义检查三个条件即可,无需任何额外数据结构。
代码
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
if (s[0] == s[3] && s[1] == s[2] && s[0] != s[1]) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
if (s.charAt(0) == s.charAt(3) && s.charAt(1) == s.charAt(2) && s.charAt(0) != s.charAt(1)) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}
复杂度分析
- 时间复杂度:
,只需常数次字符比较。
- 空间复杂度:
,仅使用常数额外空间。

京公网安备 11010502036488号