STL map 關於反片語演算法的理解

2021-10-05 03:20:07 字數 2628 閱讀 1078

題目:輸入一些單詞,找出所有滿足如下條件的單詞:該單詞不能通過字母重排,得到輸入文字中的另外乙個單詞。在判斷是否滿足條件時,字母不分大小寫,但在輸出時應保留輸入中的大小寫,按字典序進行排列(所有的大寫字母在所有的小寫字母的前面)

輸入樣例:ladder came tape soon leader acme ride lone dreis peat

scale orb eye rides dealer note derail laces dried

noel dire disk mace rob dries

輸出樣例:

disk

note

derail

dried

eyeladder

soon

#include

#include

#include

#include

#include

#include

using

namespace std;

mapint> cnt;

vector words;

string repr

(const string &s)

intmain()

vector ans;

for(

int i =

0; i < words.

size()

; i++)if

(cnt[

repr

(words[i])]

==1) ans.

push_back

(words[i]);

sort

(ans.

begin()

, ans.

end())

;for

(int i =

0; i < ans.

size()

; i++

) cout << ans[i]

<< endl;

system

("pause");

return0;

}

關於cctype中標頭檔案的函式的作用

isalnum() 如果引數是字母數字,即字母或數字,該函式返回true

isalpha() 如果引數是字母,該函式返回真

isblank() 如果引數是空格或水平製表符,該函式返回true

iscntrl() 如果引數是控制字元,該函式返回true

isdigit() 如果引數是數字(0~9),該函式返回true

isgraph() 如果引數是除空格之外的列印字元,該函式返回true

islower() 如果引數是小寫字母,該函式返回true

isprint() 如果引數是列印字元(包括空格),該函式返回true

ispunct() 如果引數是標點符號,該函式返回true

isspace() 如果引數是標準空白字元,如空格、進紙、換行符、回車

水平製表符或者垂直製表符,該函式返回true

isupper() 如果引數是大寫字母,該函式返回true

isxdigit() 如果引數是十六進製制的數字,即0~9、af、af,該函式返回true

tolower() 如果引數是大寫字元,則返回其小寫,否則返回該引數

toupper() 如果引數是小寫字母,則返回其大寫,否則返回該引數

關於map中的一些的用法

begin() 返回指向map頭部的迭代器

clear() 刪除所有元素

count() 返回指定元素出現的次數

empty() 如果map為空則返回true

end() 返回指向map末尾的迭代器

equal_range() 返回特殊條目的迭代器對

erase() 刪除乙個元素

find() 查詢乙個元素

get_allocator() 返回map的配置器

insert() 插入元素

key_comp() 返回比較元素key的函式

lower_bound() 返回鍵值》=給定元素的第乙個位置

max_size() 返回可以容納的最大元素個數

rbegin() 返回乙個指向map尾部的逆向迭代器

rend() 返回乙個指向map頭部的逆向迭代器

size() 返回map中元素的個數

swap() 交換兩個map

upper_bound() 返回鍵值》給定元素的第乙個位置

value_comp() 返回比較元素value的函式

其中該題中的作用時是使用了tolower()函式

關於algorithm標頭檔案的作用:提供了sort()函式對字母進行排序。

題中map的count函式是找到map中是否存在在字串r如果存在則返回1,否則返回0

該題演算法是每次把s放入到words中,把排好序的單詞r放入到cnt的鍵string中如果cnt中存在r字串則直接cnt[r]自增一次。如果cnt[r]不存在則給他賦值為0並自增一次,一直迴圈到輸入「#」

用for迴圈找到cnt中string 鍵中的標準化的單詞的個數,如果標準化的單詞為1 即就是輸入欄位中輸入的單詞中字母字元不一樣,這樣就不能通過重排的到另外的乙個輸入的單詞。將判斷後原單詞放入ans中,將其排序輸出。

Map的應用(反片語,UVA156)

5.map的應用 使用count 返回的是被查詢元素的個數。如果有,返回1 否則,返回0。注意,map中不存在相同元素,所以返回值只能是1或0。使用find,返回的是被查詢元素的位置,沒有則返回map.end 解題思路 每輸入乙個單詞先存入vector,歸一化並排序後對應map的值 全部處理完後再從...

反片語 uva 156(map的使用

反片語 輸入一些單詞 以 為結束標誌 找出所有滿足如下條件的單詞 該單詞不能通過字母的重排,得到輸入文字中的另乙個單詞。在判斷是否滿足條件是不分大小寫,但是在輸出時應保留輸入時的大小寫,按字典序進行排列 所有大寫字母在所有小寫字母前面 ladder came tape soon leader acm...

關於「關聯」函式的只言片語

關聯函式的結果需要請求結束後才能獲得,所以提取關聯結果的值必須在請求後,而關聯函式必須在請求前。由於我們在訪問請求前設定規則,伺服器返回的動態內容都會被關聯函式捕捉並且儲存到引數中,這樣就實現了對動態資料的捕獲,通過後期處理過程,即可完成對於動態物件的操作功能。關聯步驟流程圖 簡單的說,關聯就是對伺...