【编程题目 | 200分】没有回文串 [ 2022 Q2, Q3考试题 ]
时间限制:C/C++ 1000ms | 其他语言 2000ms
空间限制:C/C++ 128MB | 其他语言 256MB
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码。
无跳出限制,编码后请点击 “保存并提交” 按钮进行代码提交。
■ 题目描述
【没有回文串】
回文串的定义:正读和反读都一样的字符串现在已经存在一个不包含回文串的字符串,字符串的字符都是在英语字母的前N个,且字符串不包含任何长度大于等于2的回文串;
请找出下一个字典序的不包含回文串的、字符都是在英语字母的前N个、且长度相同的字符串。
如果不存在,请输出NO。
输入描述
输入包括两行。
第一行有一个整数:N(1<=N<=26),表示字符串的每个字符范围都是前N的英语字母。
第二行输入一个字符串(输入长度<=10000),输入保证这个字符串是合法的并且没有包含回文串。
输出描述
输出下一个字典序的不包含回文串的、字符都是在英语字母的前N个、且长度相同的字符串;
如果不存在,请输出”NO“。
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
3
cba
输出
NO
代码实现
C++解法一
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 1 << 30; const int MAXN = 1e3 + 5; const int MAXM = 1e5 + 5;
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看C++解法二
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 1 << 30; const int MAXN = 1e3 + 5; const int MAXM = 1e5 + 5;
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JAVA
import java.util.Scanner; public class Main { private static int nn; private static int pp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); nn = sc.nextInt(); pp = sc.nextInt();
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看Python
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。