Files
python/C++课程/待整理知识/啊哈算法/p34.cpp

34 lines
635 B
C++
Raw Normal View History

2025-08-30 18:35:01 +08:00
#include<bits/stdc++.h>
using namespace std;
int main() {
char str[100], stack[100];
int i, len, mid, next, top;
fgets(str, sizeof(str), stdin);
len = strlen(str);
mid = len / 2 - 1;//<2F><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>
top = 0;//<2F><>ʼ<EFBFBD><CABC>ջ
for (i = 0; i <= mid; i++) { //<2F><>midǰ<64><C7B0><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ջ
stack[++top] = str[i];
}
//<2F>ж<EFBFBD><D0B6>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ż<EFBFBD><C5BC><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD>Ҫƥ<D2AA><C6A5><EFBFBD>ĺ<EFBFBD><C4BA>벿<EFBFBD><EBB2BF><EFBFBD><EFBFBD>ʼ<EFBFBD>±<EFBFBD>
next = (len % 2) ? (mid+2) : (mid+1);
//<2F><>ʼƥ<CABC><C6A5>
for (i = next; i <= len - 1; i++) {
if (str[i] != stack[top]) break;
top--;
}
//<2F><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
if (top == 0)
printf("YES\n");
else
printf("No\n");
return 0;
}