精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一道簡單題看 y 總 C++ 代碼風格優于我自己的地方

開發 前端
給定一個長度為 的由小寫字母構成的字符串 。請你構造一個長度為 的由小寫字母構成的字符串 。本篇就來回答這個問題。

[[417678]]

題目

原題:AcWing 3805. 環形數組[1]

給定一個長度為 的由小寫字母構成的字符串 。

請你構造一個長度為 的由小寫字母構成的字符串 。

要求,字符串 需滿足:

  • 字符串 在字典序上大于字符串 。
  • 字符串 的字母集是字符串 的字母集的子集。一個字符串的字母集是指該字符串包含的所有不同字母的集合,例如 abadaba 的字母集為 。
  • 字符串 在字典序上盡可能小。

保證答案存在。

輸入格式

第一行包含整數 ,表示共有 組測試數據。

每組數據第一行包含兩個整數 和 。

第二行包含一個長度為 的字符串表示 。

輸出格式

每組數據輸出一行滿足所有條件的字符串 。

數據范圍

  • 前三個測試點滿足 。
  • 所有測試點滿足 ,。
  • 同一測試點內,所有 的和不超過 ,所有 的和不超過 。

輸入樣例:

  1. 3 3 
  2. abc 
  3. 3 2 
  4. abc 
  5. 3 3 
  6. ayy 
  7. 2 3 
  8. ba 

輸出樣例:

  1. aca 
  2. ac 
  3. yaa 
  4. baa 

思路:分情況討論

  • 當 k 大于 n 時,前 n 位不變,我們讓 n 位開始填補出現過的最小字符就行
  • 當 k 小于等于 n 時,我們從原字符串 k - 1 位開始往前找,如果當前字符還有變小的可能,那么就讓其變小,尋找停止,輸出新字符串

代碼

  1. #include <iostream> 
  2. #include <cstring> 
  3. #include <algorithm> 
  4. using namespace std; 
  5.  
  6. int n, k; 
  7. bool used[26]; 
  8. string s, t; 
  9.  
  10. string tail() 
  11.     int i = 0; 
  12.     for (; i < 26; ++ i) 
  13.         if (used[i]) break; 
  14.     char a = 'a' + i; 
  15.     string res(k - n, a); 
  16.     return res; 
  17.  
  18. string get() 
  19.     char max_char; 
  20.     for (int i = 25; i >= 0; -- i) 
  21.     { 
  22.         if (used[i]) 
  23.         { 
  24.             max_char = 'a' + i; 
  25.             break; 
  26.         } 
  27.     } 
  28.     char min_char; 
  29.     for (int i = 0; i < 26; ++ i) 
  30.     { 
  31.         if (used[i]) 
  32.         { 
  33.             min_char = 'a' + i; 
  34.             break; 
  35.         } 
  36.     } 
  37.      
  38.     int i = k - 1; 
  39.     for (; i >= 0; -- i) 
  40.     { 
  41.         if (s[i] != max_char) break; 
  42.     } 
  43.      
  44.     string res1 = s.substr(0, i); 
  45.     string res2; 
  46.     for (int j = s[i] - 'a' + 1; j < 26; ++ j) 
  47.     { 
  48.         if (used[j]) 
  49.         { 
  50.             res2 = (char'a' + j; 
  51.             break; 
  52.         } 
  53.     } 
  54.     string res3(k - i - 1, min_char); 
  55.  
  56.     return res1 + res2 + res3; 
  57.  
  58. int main() 
  59.     int T; 
  60.     cin >> T; 
  61.     while (T --) 
  62.     { 
  63.         cin >> n >> k; 
  64.         cin >> s; 
  65.         memset(used, 0, sizeof used); 
  66.         for (int i = 0; i < s.size(); ++ i) used[s[i] - 'a'] = true
  67.         if (k > n) 
  68.         { 
  69.             t = s + tail(); 
  70.         } 
  71.         else 
  72.         { 
  73.             t = get(); 
  74.         } 
  75.         cout << t << endl; 
  76.     } 

可以看出我的代碼思路很清晰,但是寫得有一點冗余。

y 總代碼

看看 y 總的代碼。

  1. #include <iostream> 
  2. #include <cstring> 
  3. #include <algorithm> 
  4.  
  5. using namespace std; 
  6.  
  7. const int N = 100010; 
  8.  
  9. int n, k; 
  10. char s1[N], s2[N]; 
  11. bool st[26]; 
  12.  
  13. char get_min() 
  14.     for (int i = 0; i < 26; i ++ ) 
  15.         if (st[i]) 
  16.             return i + 'a'
  17.     return -1; 
  18.  
  19. char get_next(int t) 
  20.     for (int i = t + 1; i < 26; i ++ ) 
  21.         if (st[i]) 
  22.             return i + 'a'
  23.     return -1; 
  24.  
  25. int main() 
  26.     int T; 
  27.     scanf("%d", &T); 
  28.     while (T -- ) 
  29.     { 
  30.         scanf("%d%d", &n, &k); 
  31.         scanf("%s", s1); 
  32.         memset(st, 0, sizeof st); 
  33.         for (int i = 0; i < n; i ++ ) st[s1[i] - 'a'] = true
  34.         if (k > n) 
  35.         { 
  36.             printf("%s", s1); 
  37.             char c = get_min(); 
  38.             for (int i = n; i < k; i ++ ) printf("%c", c); 
  39.             puts(""); 
  40.         } 
  41.         else 
  42.         { 
  43.             s2[k] = 0; 
  44.             for (int i = k - 1; i >= 0; i -- ) 
  45.             { 
  46.                 char c = get_next(s1[i] - 'a'); 
  47.                 if (c != -1) 
  48.                 { 
  49.                     s2[i] = c; 
  50.                     for (int j = 0; j < i; j ++ ) s2[j] = s1[j]; 
  51.                     break; 
  52.                 } 
  53.                 s2[i] = get_min(); 
  54.             } 
  55.             puts(s2); 
  56.         } 
  57.     } 
  58.  
  59.     return 0; 
  60.  
  61. // 作者:yxc 
  62. // 鏈接:https://www.acwing.com/activity/content/code/content/1634481/ 
  63. // 來源:AcWing 
  64. // 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 

很簡潔。

經驗:

  • char s[]; puts(s); 中, puts 遇到 \0 注意是 char s[k] = 0 而不是 char s[k] = '0' 字符串停止輸出。

參考資料

[1]AcWing 3805. 環形數組:

https://www.acwing.com/activity/content/problem/content/5457/

 

責任編輯:姜華 來源: Piper蛋窩
相關推薦

2021-04-29 21:06:49

有序數組算法

2022-01-19 11:39:15

數據治理大數據數據

2018-03-13 16:04:45

Promise執行順序

2009-08-11 10:12:07

C#算法

2017-11-21 12:15:27

數據庫面試題SQL

2024-03-18 13:32:11

2009-08-11 14:59:57

一道面試題C#算法

2024-04-28 09:26:40

RustRTTI二進制

2009-08-11 15:09:44

一道面試題C#算法

2021-03-02 11:29:50

算法算法分析前端

2009-01-08 21:21:45

程序員筆記

2011-08-18 09:33:23

2024-10-11 17:09:27

2022-07-26 01:11:09

AMD芯片Intel

2014-04-29 14:58:24

筆試題微軟筆試題

2010-01-21 16:18:06

C++語言

2024-12-30 09:55:00

AI數據模型

2011-05-23 11:27:32

面試題面試java

2018-03-14 07:42:48

2021-04-13 19:05:06

Go閉包面試
點贊
收藏

51CTO技術棧公眾號

国产成人久久| 1区2区3区在线| 国产精品一二三在| 91精品国产精品| 免费观看a级片| 亚洲二区av| 亚洲高清三级视频| 日韩国产欧美一区| 99热在线只有精品| 久久精品女人| 久久成人精品电影| 熟女俱乐部一区二区视频在线| 国产精品久久乐| 亚洲影院免费观看| 午夜久久资源| 污污的视频网站在线观看| 日韩成人免费看| 国外色69视频在线观看| 91香蕉国产视频| 网友自拍一区| 日韩片之四级片| 欧美成人免费高清视频| 手机在线免费观看av| 久久精品无码一区二区三区| 国产精品传媒毛片三区| 中国一区二区视频| 欧美亚洲在线| 欧美精品videossex88| 三级黄色在线观看| 亚洲69av| 亚洲国产精品久久久久| 欧美熟妇另类久久久久久多毛| 中文字幕乱码中文乱码51精品| 樱桃国产成人精品视频| 一区二区精品在线| 国产在线视频网站| 91视频在线看| 国产伦精品一区二区三区视频孕妇 | 国产精品视频一| 好吊妞视频一区二区三区| 欧美一区91| 久久精品中文字幕免费mv| 手机毛片在线观看| 欧美精品系列| 亚洲午夜未删减在线观看 | 亚洲免费成人在线| 国产在线精品一区二区三区不卡 | 精品久久97| 日韩一区二区电影网| 九九热精品国产| 日本在线一区二区| 欧美日韩精品一区二区三区| 无码日韩人妻精品久久蜜桃| 亚洲综合在线电影| 在线国产亚洲欧美| 亚洲黄色av网址| 日韩精品麻豆| 欧美日韩中文精品| 日本在线一二三区| 欧美videos粗暴| 欧美丰满美乳xxx高潮www| 中文字幕视频三区| 天堂av一区| 亚洲精品在线三区| avtt香蕉久久| 久久成人高清| 日韩中文字幕免费看| 国产少妇在线观看| 伊人久久亚洲热| 91po在线观看91精品国产性色| 黄网在线观看视频| 日本在线观看不卡视频| 国产一区深夜福利| www天堂在线| 99视频在线精品| 欧美日韩一区在线播放| 在线免费观看的av网站| 亚洲精品国产一区二区三区四区在线| 欧美中文字幕在线观看视频 | 精品无码av一区二区三区不卡| 99国产精品免费网站| 亚洲精品国产精品国自产在线| 国产精品300页| 日韩精品一区二区久久| 欧美刺激性大交免费视频| 日本少妇性高潮| 三级在线观看一区二区| 成人免费在线视频网站| 国产 欧美 自拍| 久久免费视频色| 最新中文字幕久久| 美女视频在线免费| 欧美日本免费一区二区三区| 韩国三级在线看| 国产精品一区二区av交换| 欧美另类精品xxxx孕妇| 精品国产乱子伦| 国产精品一区一区三区| 蜜桃av久久久亚洲精品| 精品黄色免费中文电影在线播放| 亚洲国产精品久久久久秋霞影院| 日本精品久久久久中文字幕| 91精品福利观看| 亚洲欧美国产一区二区三区| 天天干中文字幕| 日韩国产精品久久久| www.久久爱.cn| 搞黄视频在线观看| 亚洲电影一区二区三区| 欧美成人三级在线播放| 欧美理伦片在线播放| 超碰精品一区二区三区乱码| 一级做a爰片久久毛片| 国产精品系列在线播放| 日韩免费一区二区三区| а√天堂资源官网在线资源| 在线电影欧美成精品| 中文字幕5566| 亚洲一级黄色| 亚洲iv一区二区三区| 国外av在线| 欧美日韩美女在线| 欧美久久久久久久久久久| 秋霞欧美视频| 国产成人小视频在线观看| 国产91免费在线观看| 1024精品合集| 狠狠干狠狠操视频| 色999日韩| 国产精品国语对白| 欧美日本韩国一区二区| 亚洲一区影音先锋| 在线播放黄色av| 日韩一区二区在线免费| 日本中文字幕成人| 亚洲色图21p| 亚洲国产裸拍裸体视频在线观看乱了| 中文字幕在线视频一区二区三区 | 91精品一区二区三区四区| 主播大秀视频在线观看一区二区| 亚洲精品黄网在线观看| 国产真实的和子乱拍在线观看| 国产在线看一区| 中文字幕色一区二区| 国产精品天堂蜜av在线播放| 国产亚洲精品一区二区| 天堂网一区二区| 久久精品欧美一区二区三区不卡 | 免费成人毛片| 日韩中文综合网| 亚洲一区二区天堂| 中文字幕制服丝袜成人av| www.涩涩涩| 日韩在线理论| 91老司机精品视频| 国产成人午夜| 精品国产在天天线2019| 久久精品国产亚洲AV无码男同| 丰满岳乱妇一区二区三区| 性高湖久久久久久久久aaaaa| 成人春色在线观看免费网站| 久久久久久久一区二区三区| 六月婷婷综合网| 五月婷婷综合激情| 日韩人妻一区二区三区| 久久久人人人| 亚洲乱码国产乱码精品天美传媒| 日韩一区二区三区四区五区 | 亚洲国产精彩中文乱码av| 一区二区三区视频免费看| 91蜜桃婷婷狠狠久久综合9色| 国产欧美高清在线| 久久国产成人精品| 96久久精品| 国产污视频在线播放| 亚洲欧美日韩一区二区在线| 亚洲视屏在线观看| 日韩久久一区二区| 日本性生活一级片| 可以免费看不卡的av网站| 亚洲乱码一区二区三区| 亚洲视频一起| 秋霞成人午夜鲁丝一区二区三区| 91caoporn在线| 精品国产乱码久久久久久久| 青青视频在线免费观看| 国产精品第四页| 亚洲av成人精品一区二区三区| 久久久久免费| 成人国产在线看| 综合综合综合综合综合网| 91久久夜色精品国产网站| 国产在线精彩视频| 色诱女教师一区二区三区| 亚洲狼人综合网| 欧美中文字幕亚洲一区二区va在线| 中文字幕另类日韩欧美亚洲嫩草| 2020国产成人综合网| 捷克做爰xxxⅹ性视频| 久久久久久久尹人综合网亚洲| 天天综合五月天| 精品av一区二区| 99re在线国产| 视频精品导航| 欧美一级成年大片在线观看| 国产乱色在线观看| 亚洲欧美另类在线观看| 精品人妻无码一区二区色欲产成人| 欧美午夜丰满在线18影院| 久久精品黄色片| 国产婷婷精品av在线| 日本不卡视频一区| 久久99精品国产麻豆不卡| www黄色av| 精品999网站| 女同性恋一区二区| 欧美综合另类| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 日本不卡视频一区| 国产精品夜夜爽| www.99r| 免费一级片91| 国产精品视频黄色| 一区二区三区四区五区在线| av在线免费观看国产| 亚洲a一区二区三区| 午夜欧美性电影| 国产传媒欧美日韩成人精品大片| 国产日韩精品推荐| 日韩国产在线不卡视频| 国产在线拍偷自揄拍精品| japanese23hdxxxx日韩| 欧美中文在线字幕| 国产剧情av在线播放| 国外成人在线播放| www.综合| 97免费中文视频在线观看| 国产在线拍揄自揄拍视频 | 久久久国产精品人人片| 日韩毛片精品高清免费| 成人三级视频在线观看| 国产精品久久久久久久久免费桃花| 在线视频第一页| 国产欧美视频一区二区| 亚洲av无码一区二区三区人| 久久一夜天堂av一区二区三区| 538国产视频| 91污在线观看| 成人影视免费观看| 久久婷婷国产综合国色天香| 永久免费看mv网站入口78| 26uuu国产一区二区三区| 人妻丰满熟妇av无码久久洗澡| 亚洲精品动态| 国产成人av一区二区三区| 97品白浆高清久久久久久| 99久久自偷自偷国产精品不卡| 免费一级欧美片在线观看网站| 96pao国产成视频永久免费| 精品国产不卡一区二区| 亚洲伊人一本大道中文字幕| 日本精品视频| 国产一区二区三区高清| 天天躁日日躁狠狠躁欧美巨大小说 | 视频精品一区二区三区| 国产伦精品一区二区三区免| 日韩伦理一区二区三区| 欧美午夜欧美| 久久香蕉国产| 中文字幕日韩精品无码内射| 亚洲小说欧美另类社区| 日本精品一区在线观看| 日韩制服丝袜av| 亚洲精品免费一区亚洲精品免费精品一区 | 国产亚洲一区| 久久视频免费在线| 国内一区二区三区| 91免费视频网站在线观看| 日本va欧美va精品发布| 一区二区三区国产好的精华液| 成人av在线观| 日韩中文字幕有码| 亚洲人xxxx| 日韩精品一区二区不卡| 欧洲一区二区三区在线| 99精品视频在线播放免费| 亚洲精品第一页| 在线国产情侣| 欧美激情按摩在线| 韩国成人在线| 成人免费在线看片| 成人精品视频| 日韩小视频在线播放| 久久精品国产99久久6| 蜜臀av粉嫩av懂色av| 国产精品欧美一级免费| 久久9999久久免费精品国产| 欧美亚洲高清一区| 亚洲欧美激情另类| 色青青草原桃花久久综合| 欧美国产在线电影| 成年视频在线观看| 欧美一级片一区| 麻豆精品久久| 日韩欧美一区二区三区四区五区| 亚洲乱码在线| 精品少妇无遮挡毛片| 懂色av一区二区三区免费观看 | 欧美黑白配在线| 日本一区二区免费高清视频| 国产美女诱惑一区二区| 佐山爱在线视频| 欧美韩国日本一区| 国产a∨精品一区二区三区仙踪林| 欧美精品久久天天躁| 国产在线观看黄| 性色av一区二区三区免费 | 久久久综合网| 亚洲一区二区在线免费| 亚洲精选免费视频| 91欧美日韩麻豆精品| 亚洲欧洲在线播放| 国产不卡人人| 国产高清不卡av| 欧美黄色免费| 超碰中文字幕在线观看| 国产精品免费久久| 天天操天天干天天摸| 日韩理论片久久| 成人影院在线视频| www.久久草| 国产精品红桃| 在线观看视频你懂得| 亚洲同性同志一二三专区| 夜夜躁很很躁日日躁麻豆| 国产午夜精品全部视频在线播放| 亚洲免费福利| 蜜桃免费一区二区三区| 国产欧美三级| 91av在线免费| 日韩欧美中文字幕在线观看| 污视频在线免费观看| 97免费视频在线| 四虎5151久久欧美毛片| 日本免费不卡一区二区| 99精品欧美一区二区三区小说| 久久国产精品波多野结衣av| 精品日韩av一区二区| 高清电影在线观看免费| 国产一区二区三区无遮挡| 亚洲国产第一| 五级黄高潮片90分钟视频| 欧美视频一区二区三区…| 日本免费一区二区三区最新| 国产999精品视频| 超碰成人久久| 超碰人人草人人| 亚洲一区二区三区四区的| 亚洲奶汁xxxx哺乳期| 欧美一级黄色网| 不卡一区综合视频| 欧洲在线免费视频| 亚洲一区在线电影| 亚洲 小说区 图片区 都市| 国产精品96久久久久久| 久久视频在线| 成人欧美精品一区二区| 欧美日韩中文字幕在线| 成a人片在线观看www视频| 91久久国产婷婷一区二区| 欧美视频一区| 人妻少妇一区二区| 欧美日韩大陆一区二区| 羞羞污视频在线观看| 国严精品久久久久久亚洲影视| 亚洲免费综合| 5566中文字幕| 亚洲国模精品私拍| 国产成人毛片| www.国产在线视频| 欧美激情一区二区三区四区| 国产xxxxxx| 欧美专区第一页| 色婷婷一区二区三区| 久久精品无码专区| 欧美在线免费观看视频| av免费看在线| 欧美日韩在线高清| 国产麻豆午夜三级精品| 精产国品一区二区| 久久躁狠狠躁夜夜爽| 欧美成a人免费观看久久| 亚洲综合日韩欧美| 午夜精品久久久| 欧美成人二区| 欧美久久久久久一卡四| 国产激情一区二区三区四区 | 欧美日韩国产高清一区二区| 黄网在线免费看| 亚洲自拍三区|