求公共后缀
输入
3
Itsi nyan!
wansahsjnyan!
this is anpnyan!
输出
nyan!
说明:不存在的话输出nai
#include <iostream>
#include <sstream>
#include <cstring>
using namespace std;
int main() {
char s[100][256]; //最多100个字符串,每个字符串256个字符
int n, ans = 0, minLen = 256;
cin >> n;
getchar();
for (int i = 0; i < n; i++)
{
// cin >> s[i]; 这样的输出遇到空格就不行
gets_s(s[i]);
int len = strlen(s[i]);
if (len < minLen) //取最小长度
minLen = len;
for (int j = 0; j < len / 2; j++)
{
char temp = s[i][j];
s[i][j] = s[i][len - j - 1];
s[i][len - j - 1] = temp;
}
}
for (int i = 0; i < minLen; i++) //判断所有字符串的第i个字符是否全部相等
{
char c = s[0][i]; //取第一个字符串的第i个字符
bool same = true;
for (int j = 1; j < n; j++) //判断其余字符串的第i个字符是否是c
{
if (c != s[j][i])
{
same = false;
break;
}
}
if (same) ans++; //若所有字符串的第i位相等,则计数加1
else break;
}
if (ans)
{
for (int i = ans - 1; i >= 0; i--)
{
cout << s[0][i]; //将结果逆序输出
}
}
else
cout << "nai";
return 0;
}
浙公网安备 33010602011771号