会回文字符串但是不完全会(雾)
  • 板块学术版
  • 楼主Davidben
  • 当前回复22
  • 已保存回复22
  • 发布时间2022/10/27 20:58
  • 上次更新2023/10/27 05:32:48
查看原帖
会回文字符串但是不完全会(雾)
484468
Davidben楼主2022/10/27 20:58

题目很简单,就是寻找最长的回文子串 但是要按字典序排序(范围 <=5000)

我想知道有什么方法可以让字符串按字典序排序?

#include <iostream>
#include <string>
#include <vector>
using namespace std;

string ex(string s, int i, int j) {
	int l, r;
	if (i == j) {
		l = i - 1, r = i + 1;
	} else {
		l = i - 1, r = j + 1;
	}
	while (l >= 0 && r < s.size()) {
		if (s[l] != s[r]) {
			break;
		} else {
			l--;
			r++;
		}
	}
	return s.substr(l + 1, r - l - 1);
}

string huiwen(string s) {

	string cnt = "";
	int len = s.size();
	if (len < 2) {
		return s;
	}
	for (int i = 0; i < len; i++) {
		string ti = ex(s, i, i);
		if (ti.size() > cnt.size()) {
			cnt = ti;
		}
	}
	for (int i = 0; i < len - 1; i++) {
		if (s[i] == s[i + 1]) {
			string ti = ex(s, i, i + 1);
			if (ti.size() > cnt.size()) {
				cnt = ti;
			}
		}
	}
	return cnt;
}
int main() {
	string str;
	cin >> str;
	string cnt = huiwen(str);
	
	cout << cnt << endl;

	return 0;
}

2022/10/27 20:58
加载中...