---
# System prepended metadata

title: 第七次實習課額外練習題 - palindrome
tags: [實習額外加分題]

---

###### tags: `實習額外加分題`

第七次實習課額外練習題 - palindrome
===
palindrome，俗稱回文，是一種正著讀與反著讀都能讀通的句子。
請設計一個函式叫做 palindrome，來判別你輸入的句子是否為回文。

這題如果你能夠完成單詞的回文判斷，可以加 1 分，如果你能完成句子的回文判斷，可以加 3 分。

在輸出是否為回文前，先輸出你處理過的字串。

#### 舉例
* 單詞
    * `madam`、`anna`、`civic`、`level`、`noon`、`radar`
* 句子
    * 輸入 i did did i
        * 變成 ididdidi
    * 輸入 step on no pets
        * 變成 steponnopets

## TIPS:
這題絕對會用到字串處理，本來是下學期的內容，但我覺得沒必要下學期才教。
* 如何讓一個字串輸入能夠允許空白
    * getline(cin, string_name)
    * ![](https://i.imgur.com/WADRNg2.png)
    * 有關這方面的概念之後會教，先記這樣的寫法才允許輸入含空白的字串


### 加一分絕對會用到...
* {string_variable_name}.length()
    * 可以取得你當前字串的長度
    * string 是變數名稱，依你的字串變數名稱而定

### 加三分你可能會用到
* getline(cin, your_string_variable)
    * 這樣才能允許字串包含空格
    * 切忌不是 cin >> str
* {string_variable_name}.substr(start_pos, str_leng)
    * 可以取得當前字串的子字串
    * [reference](https://www.cplusplus.com/reference/string/string/substr/)
* {string_variable_name}.replace(start_pos,  str_len,  str_you_want_replace)
    * 可以把字串內想替換的字串替換成你想要的
    * [reference](https://www.cplusplus.com/reference/string/string/replace/)
* 可能還有更多，你可以翻翻講義

## Constraint
* 不考慮任何標點符號
    * EX: I don't like you.
    * 上例不考慮 `'` 跟 `.`，所以在輸入句子的時候可以忽略
* 若你要輸入句子，請把空格替換成沒有空格後再進行回文判斷
    * EX: i feel good
    * 經過你的程式會變成 ifeelgood
* 不刁難大家，輸入的時候統一小寫就好，還要處理大小寫我會被殺掉

## 加一分的 Sample Input & Output 
```
madam
isPalindrome
```
```
anna
isPalindrome
```
```
door
notPalindrome
```

## 加三分的 Sample Input & Output 1
![](https://i.imgur.com/0MX28fi.png)

## 加三分的 Sample Input & Output 2
![](https://i.imgur.com/vQREAz0.png)

## 加三分的 Sample Input & Output 3
![](https://i.imgur.com/HG8oFs3.png)


