回答編集履歴
1
追記
answer
CHANGED
@@ -1,4 +1,26 @@
|
|
1
1
|
回文かどうかを判断するとき、スペースや句読点は無視しますよね。
|
2
2
|
`No melon, no lemon.` だと `NOMELONNOLEMON` で回文です。
|
3
3
|
調べる対象の文字がスペースかどうかを判定するのが isspace、
|
4
|
-
句読点かどうかを判定するのが ispunct です。
|
4
|
+
句読点かどうかを判定するのが ispunct です。
|
5
|
+
|
6
|
+
**追記**
|
7
|
+
```C++
|
8
|
+
#include <iostream> // cin, cout, endl
|
9
|
+
#include <string> // getline
|
10
|
+
#include <cctype> // isspace, ispunct, toupper
|
11
|
+
using namespace std;
|
12
|
+
|
13
|
+
int main()
|
14
|
+
{
|
15
|
+
string s;
|
16
|
+
getline(cin, s);
|
17
|
+
int i = 0, j = s.size() - 1;
|
18
|
+
while (i < j)
|
19
|
+
if (s[i] はスペースまたは句読点か) i++;
|
20
|
+
else if (s[j] はスペースまたは句読点か) j--;
|
21
|
+
else if (s[i] の大文字と s[j] の大文字は等しいか) i++, j--;
|
22
|
+
else break;
|
23
|
+
cout << (i < j ? "no" : "yes") << endl;
|
24
|
+
}
|
25
|
+
```
|
26
|
+
どう書けばいいか分かりますか?
|