用qt写一个最长回文子串代码需要创建qt窗口实现输入输出
时间: 2023-07-13 09:16:58 浏览: 49
好的,以下是一个基于Qt的最长回文子串的实现示例:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建窗口
QWidget window;
window.setWindowTitle("最长回文子串");
window.resize(400, 300);
// 创建输入框和按钮
QLineEdit input(&window);
input.setGeometry(10, 10, 280, 30);
QPushButton button("计算", &window);
button.setGeometry(300, 10, 80, 30);
// 创建输出框
QTextEdit output(&window);
output.setGeometry(10, 50, 370, 240);
output.setReadOnly(true);
// 连接按钮的点击事件
QObject::connect(&button, &QPushButton::clicked, [&](){
QString str = input.text(); // 获取输入的字符串
int len = str.length();
// 计算最长回文子串
int max_len = 0, start = 0;
for (int i = 0; i < len; i++) {
for (int j = i; j < len; j++) {
bool flag = true;
for (int k = 0; k <= (j-i)/2; k++) {
if (str[i+k] != str[j-k]) {
flag = false;
break;
}
}
if (flag && j-i+1 > max_len) {
max_len = j-i+1;
start = i;
}
}
}
// 显示最长回文子串
if (max_len > 0) {
QString palindrome = str.mid(start, max_len);
output.setText(QString("最长回文子串为:%1").arg(palindrome));
} else {
output.setText("没有找到回文子串");
}
});
window.show();
return app.exec();
}
```
在这个示例中,我们创建了一个窗口,包含一个输入框和一个按钮用于输入和触发计算,还有一个输出框用于显示结果。当点击按钮时,程序会计算输入字符串中的最长回文子串,并将结果显示在输出框中。