teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/11/08 03:40

投稿

kazuma-s
kazuma-s

スコア8222

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
+ どう書けばいいか分かりますか?