日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

对字符串数组排序,使所有变位词都相邻(C++)

發(fā)布時間:2025/3/21 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对字符串数组排序,使所有变位词都相邻(C++) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目

編寫一個函數(shù),對字符串?dāng)?shù)組進(jìn)行排序,將所有變位詞排在相鄰的位置。

思路1:利用sort函數(shù)

首先要清楚什么是變位詞。變位詞就是組成的字母相同,但順序不一樣的單詞。 比如:live和evil就是一對變位詞。

在C++中,排序可以通過STL中的sort函數(shù)快速實現(xiàn)。sort可以將字符串?dāng)?shù)組中的字符串按字典序排序。雖然本題中的要求是按照變位詞的準(zhǔn)則來排序,我們還是可以調(diào)用sort函數(shù),不過要自己實現(xiàn)sort函數(shù)中的compare函數(shù)。

實現(xiàn)如下。

#include <iostream> #include <algorithm>using namespace std;bool cmp(string s1, string s2){sort(s1.begin(), s1.end()); // 精髓所在sort(s2.begin(),s2.end());return s1 < s2; } int main(){string s[] = {"axyz", "abc", "yzax", "bac", "zyxa", "fg", "gf"};sort(s, s+7, cmp);for(int i=0; i<7; ++i)cout<<s[i]<<endl;return 0; }復(fù)制代碼

注釋:

① sort函數(shù)

函數(shù)形式:C++ sort(first_pointer, first_pointer+n, cmp)

參數(shù)解釋: 第一個參數(shù)是數(shù)組的首地址,一般寫上數(shù)組名就可以,因為數(shù)組名是一個指針常量。第二個參數(shù)相對較好理解,即首地址加上數(shù)組的長度n(代表尾地址的下一地址)。最后一個參數(shù)是比較函數(shù)的名稱(自定義函數(shù)cmp),這個比較函數(shù)可以不寫,即第三個參數(shù)可以缺省,這樣sort會默認(rèn)按數(shù)組升序排序。

函數(shù)拓展:cmp比較函數(shù)

//情況一:數(shù)組排列 int A[100]; bool cmp1(int a, int b)//int為數(shù)組數(shù)據(jù)類型 {return a > b;//降序排列//return a < b;//默認(rèn)的升序排列 } sort(A, A+100, cmp1);//情況二:結(jié)構(gòu)體排序 Student Stu[100]; bool cmp2(Student a, Student b) {return a.id > b.id;//按照學(xué)號降序排列//return a.id < b.id;//按照學(xué)號升序排列 } sort(Stu, Stu+100, cmp2);復(fù)制代碼

② 注意事項

第一次看到本題,我的直接思路是利用sort函數(shù)實現(xiàn)降序,不定義cmp函數(shù),運行結(jié)果并不符合要求。這是因為,對string數(shù)組利用sort函數(shù)直接進(jìn)行降序排序,是“將字符串?dāng)?shù)組中的字符串按字典序排序”,string數(shù)組中單個string字符串本身并未得到排序,因此無法正確找到“變位詞”。

// 直接利用sort函數(shù)排序,運行結(jié)果有誤!! #include <iostream> #include <algorithm> #include <string> using namespace std;bool cmp(string s1, string s2){//sort(s1.begin(), s1.end());//sort(s2.begin(), s2.end());return s1 < s2; } int main(){string s[] = {"axyz", "abc", "yzax", "bac", "zyxa", "fg", "gf"};sort(s, s + 7, cmp);for (int i = 0; i<7; ++i)cout << s[i] << endl;return 0; }運行結(jié)果: // 可以看出以上string字符串均按照字典序排序 abc axyz bac fg gf yzax zyxa復(fù)制代碼

思路2:哈希表排序




參考文獻(xiàn)

[1]?寫一個函數(shù)對字符串?dāng)?shù)組排序,使所有變位詞都相鄰

[2]?leetcode 相同字母組成的不同單詞歸為一類即所謂的變位詞

[3] 變位詞排序

[4] 變位詞排序


總結(jié)

以上是生活随笔為你收集整理的对字符串数组排序,使所有变位词都相邻(C++)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人片在线视频 | 无码国产伦一区二区三区视频 | 岛国av免费在线 | 中文字幕一区二区三区人妻在线视频 | 玉势 (1v1 高h) | 一区二区内射 | 久久无码人妻精品一区二区三区 | 久久看片网 | 午夜精品欧美 | 最好看的电影2019中文字幕 | 亚洲精品在线视频观看 | 亚欧日韩av | 亚洲成a人无码 | 一本色道久久hezyo加勒比 | 日本黄色生活片 | 一区二区视频播放 | 性史性dvd影片农村毛片 | 一区久久久 | 草草视频在线观看 | 天天爽夜夜爽人人爽 | 电影寂寞少女免费观看 | 欧美肥老妇视频九色 | 中文文字幕一区二区三三 | 黄色在线视频网址 | 超碰在线免费看 | 成年人视频在线免费看 | 欧美性在线视频 | 成人颜色网站 | 欧美少妇激情 | 少妇被又大又粗又爽毛片久久黑人 | 麻豆国产一区二区 | 国产精品三级在线观看无码 | 国产chinese男男网站大全 | 国产精品无码人妻一区二区在线 | 欧美xxxx网站 | 国产福利精品在线观看 | 色悠悠国产精品 | 亚洲一区中文 | 国产卡一卡二卡三无线乱码新区 | 先锋影音av在线 | 两个小y头稚嫩紧窄h文 | 亚洲人交配视频 | 成人一二区 | 一级特黄aa大片 | 国产一级淫片a视频免费观看 | 欧美永久 | 免费看美女隐私网站 | 鬼眼 电影| 亚洲欧美色图视频 | 黄网站免费大全入口 | 丁香六月av | 天天狠天天插天天透 | av大全免费观看 | 国产又粗又猛又爽又黄的视频在线观看动漫 | 尤物av在线 | 在线黄色av网站 | 麻豆国产一区二区 | 久久精品这里只有精品 | 欧美午夜精品理论片a级按摩 | 亚洲精品一区二区口爆 | 欧美视频中文字幕 | 日本一区二区三区视频在线 | 日韩中文字幕在线 | 麻豆亚洲av熟女国产一区二 | 91香蕉视频在线 | 亚洲另类欧美日韩 | 国产乱码一区 | 欧美三级午夜理伦三级 | 国产女主播喷水高潮网红在线 | 免费在线性爱视频 | 中文字幕一区二区人妻在线不卡 | 朴麦妮原版视频高清资源 | 国模在线视频 | 自拍偷拍20p | 91视频成人免费 | 蜜桃av免费看 | 五月天色婷婷综合 | 神马午夜麻豆 | 亚洲xxxx视频 | jzzijzzij亚洲成熟少妇在线观看 久久久精品人妻一区二区三区 | 99草在线视频 | 日本精品免费一区二区三区 | 九九视频免费 | 国产精品久久久一区二区三区 | 少妇29p| 欧美一级网址 | 国产精品毛片一区二区在线看 | 亚洲成人h | 黄色1级大片 | 精品动漫3d一区二区三区免费版 | 99reav | 国产福利小视频 | 一二三四区视频 | 东方欧美色图 | 黄视频免费观看 | 欧美在线一区二区三区四区 | 亚洲成人自拍 | 风间由美一区二区 | 国产一级在线观看 |