精品欧美一区二区三区在线观看 _久久久久国色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区| 久久精品magnetxturnbtih| 久久黄色精品视频| 经典一区二区| 91精品国产日韩91久久久久久| 国产av熟女一区二区三区| 五月婷婷六月激情| 久久精品av麻豆的观看方式| 欧美日本国产在线| 内射中出日韩无国产剧情| 丁香婷婷久久| 亚洲成人av一区| 亚洲二区自拍| 污视频网站免费观看| 美国十次了思思久久精品导航| 欧美国产亚洲视频| 国产精品视频在| 老司机凹凸av亚洲导航| 欧美日韩不卡在线| 国产免费成人在线| 在线h片观看| 国产肉丝袜一区二区| 91福利视频导航| 凹凸精品一区二区三区| 99亚洲精品| 美日韩在线视频| 欧美激情视频二区| 亲子伦视频一区二区三区| 欧美一区二区美女| 亚洲另类第一页| 成人免费网站视频| 亚洲网友自拍偷拍| 中文字幕精品在线播放| 香蕉视频在线看| 久久影院午夜片一区| 国产高清一区视频| 国产wwwwwww| 精品一区二区三区在线播放视频 | 在线毛片网站| 久久伊人蜜桃av一区二区| 国产成人一区二区三区免费看| 91无套直看片红桃| 青青草成人在线观看| 欧美一级片在线播放| 国产乡下妇女做爰毛片| 好吊一区二区三区| 久久99精品久久久久久噜噜| 蜜桃视频最新网址| 日韩情爱电影在线观看| 在线观看久久av| 精品少妇一区二区三区免费观| 久久夜色精品国产噜噜av小说| 精品黑人一区二区三区久久| 涩多多在线观看| 成人av在线播放| 日韩欧美在线一区二区三区| 成人日韩在线视频| 日韩免费在线电影| **爰片久久毛片| 99精品国产91久久久久久| 亚洲影视九九影院在线观看| 国产精品久久久久久69| 日本成人中文字幕在线视频| 国产精品第100页| 无码人妻一区二区三区免费| 久久国产88| 欧美专区日韩视频| 性无码专区无码| 亚洲一区欧美二区| 日本久久久久久久久久久| 国产一级淫片a视频免费观看| 久久先锋影音| 国产精品久久久久999| 最近中文字幕在线观看| 日本不卡在线视频| 91丨九色丨国产在线| 亚洲av无码片一区二区三区 | 飘雪影院手机免费高清版在线观看| yourporn久久国产精品| 麻豆传媒一区二区| a√资源在线| 亚洲视频一区在线| 成人在线观看毛片| 国模精品视频| 欧洲av一区二区嗯嗯嗯啊| 欧美成人乱码一二三四区免费| 亚洲热av色在线播放| 欧美mv日韩mv国产| 黄色aaa视频| 91精品久久久久久久久久不卡| 欧美大片免费看| 亚洲黄网在线观看| 国产一区久久久| 久久精品国产第一区二区三区最新章节 | 黄网站视频在线观看| 亚洲精品国产一区二区精华液| heyzo亚洲| www.国产精品| 精品美女一区二区| 国产在线综合视频| 欧美va天堂| 国产成人av在线| 亚洲av无码一区二区三区性色| 久久一夜天堂av一区二区三区| 在线视频91| 中文字幕高清在线播放| 欧美精品色一区二区三区| 国产激情第一页| 婷婷久久综合| 国产91色在线| 亚洲av少妇一区二区在线观看| 国产网红主播福利一区二区| 欧美在线观看黄| 欧美成人app| 亚洲国产成人久久| 成年人午夜剧场| 日韩电影在线观看电影| 国产精品裸体一区二区三区| 欧美jizzhd欧美| 色系网站成人免费| 中文字幕天堂网| 亚洲精品2区| 国产精品欧美日韩久久| 午夜小视频免费| 亚洲精品欧美在线| 伊人国产在线视频| 久操国产精品| 26uuu亚洲伊人春色| 精品久久久久久亚洲综合网站| 国产欧美日产一区| 久久综合九色综合88i| 亚洲91网站| 精品国偷自产在线视频| 人人妻人人爽人人澡人人精品| 成人永久aaa| 欧美日韩午夜爽爽| 国产剧情一区二区在线观看| 在线中文字幕日韩| 不卡av电影在线| 久久免费精品国产久精品久久久久| 青青草免费在线视频观看| jizz久久久久久| 中文日韩电影网站| 天天操天天干天天摸| 91免费国产在线观看| 国产精品一区二区免费在线观看| 亚洲大奶少妇| 欧美成人精品在线播放| 国产精品爽爽久久久久久| 欧美激情一区二区三区在线| wwwxxx黄色片| 国产欧美一区| 国产成人高清激情视频在线观看| 深夜福利免费在线观看| 狠狠做深爱婷婷久久综合一区| 国产免费一区二区三区最新6| 99亚洲伊人久久精品影院红桃| 国产一区二区三区高清视频| sqte在线播放| 在线成人免费观看| 黑人と日本人の交わりビデオ| 人人精品人人爱| 欧洲一区二区日韩在线视频观看免费| 中文字幕色婷婷在线视频| 日韩av一区二区在线| 精品成人久久久| 2023国产精品| 欧美极品欧美精品欧美图片| 免费成人高清在线视频theav| 国产精品久久久久久久久男| 日韩三级影院| 国产一区丝袜| 日韩精品一区二区久久| 久久亚洲国产精品| 国产精品视频白浆免费视频| 国产在线观看网站| 精品视频123区在线观看| 国内毛片毛片毛片毛片毛片| 国产酒店精品激情| 91.com在线| 一区二区三区视频免费观看| 国产精品影片在线观看| 黄网页在线观看| 欧美精品一区二区高清在线观看| 在线能看的av| 中文字幕精品三区| 中文字幕久久久久久久| 一区二区三区四区五区在线 | 国产一区调教| 国产精品男人的天堂| 欧美人与性动交α欧美精品济南到| 亚洲风情亚aⅴ在线发布| 伊人久久中文字幕| 夜夜爽夜夜爽精品视频| 37p粉嫩大胆色噜噜噜| 久久97超碰国产精品超碰| 999在线观看视频| 大色综合视频网站在线播放| 国产成人精品免费视频大全最热| 欧洲av不卡| 欧美高清视频在线播放| 国产youjizz在线| 精品国产免费久久| 中文字幕免费高清在线观看| 亚洲成人1区2区| 欧美成人久久久免费播放| 波波电影院一区二区三区| 久久久久久蜜桃一区二区| 亚洲伦伦在线| 亚洲精品偷拍视频| 国产一区二区在线| 国产欧美韩日| 精品国产亚洲一区二区在线观看| 欧美一区亚洲一区| 青草影视电视剧免费播放在线观看| 亚洲一级黄色av| 好男人www在线视频| 欧美日韩国产小视频| 黄色片中文字幕| 午夜天堂影视香蕉久久| 天堂网avav| 欧美经典一区二区三区| 国产三级国产精品| 国产69精品一区二区亚洲孕妇| 在线观看岛国av| 久久午夜精品| 亚洲午夜无码av毛片久久| 国产综合色产| 91传媒免费视频| 国产精品久久久久久久免费观看| 日韩国产在线一区| 亚洲另类春色校园小说| 久久99精品久久久久久青青日本 | 亚洲激情在线观看视频免费| www.国产欧美| 欧美一级爆毛片| 91成人国产综合久久精品| 日本高清无吗v一区| 亚洲免费在线视频观看| 丁香五六月婷婷久久激情| 澳门黄色一级片| 亚洲丝袜美腿综合| 一级免费黄色录像| 国产精品麻豆视频| 女教师淫辱の教室蜜臀av软件| 国产日本一区二区| 日韩一级av毛片| 久久美女艺术照精彩视频福利播放 | 久久久久97国产| 亚洲美女少妇撒尿| 国产精品国产精品88| 亚洲人妖av一区二区| 日韩高清dvd碟片| 亚洲免费在线视频| 日韩欧美中文字幕视频| 怡红院av一区二区三区| 久久久久久久久久综合| 亚洲第一福利视频在线| 国产午夜视频在线| 五月天久久比比资源色| 好看的av在线| 色噜噜狠狠成人网p站| 日韩乱码一区二区三区| 欧美日韩色综合| 国产精品自产拍| 日韩欧美中文字幕精品| 色一情一乱一区二区三区| 日韩精品在线观看一区| 日本天堂影院在线视频| 国产午夜精品全部视频播放| 成年在线电影| 久久夜色撩人精品| av老司机在线观看| 日韩av免费网站| 久久亚洲精品人成综合网| 91香蕉亚洲精品| 美女福利一区| 视频一区二区三| 欧美不卡一区| 免费看的黄色大片| 久久精品久久精品| 国产av一区二区三区传媒| 99国内精品久久| 后入内射无码人妻一区| 亚洲一区二区三区精品在线| 国产精品一区无码| 91精品国产麻豆国产自产在线| 深爱激情五月婷婷| 伊是香蕉大人久久| 激情网站在线| 国产精品久久中文| 9l亚洲国产成人精品一区二三| 欧美一区二区在线视频观看| 91精品精品| 日韩毛片在线免费看| 国产精品综合视频| 四虎永久免费在线观看| 亚洲精品国产高清久久伦理二区 | 欧美在线制服丝袜| 性中国古装videossex| 亚洲最大中文字幕| 波多野结衣中文在线| 国产成人亚洲综合| 97se亚洲| 一区二区三区日韩视频| 国产亚洲福利| 亚洲区 欧美区| 中文一区在线播放| 国产三级av片| 日韩精品一区二区三区视频 | 久久久久久三级| 成人av网站在线观看| 亚洲一二三在线观看| 欧美性生活大片免费观看网址| www.蜜桃av.com| 日韩中文字幕免费视频| 日韩在线影院| 久久久久久国产精品mv| 欧美三级免费| 99999精品| 国产精品国产三级国产有无不卡| 日韩av大片在线观看| 日韩精品在线网站| а√中文在线8| 国产精品视频免费在线观看| 欧美**字幕| av动漫在线看| 成人h动漫精品一区二区 | 狠狠色狠狠色综合日日五| 国产按摩一区二区三区| www.国产一区| 九七电影院97理论片久久tvb| 蜜桃欧美视频| 亚洲永久视频| 国产精品300页| 亚洲成a人v欧美综合天堂| www.亚洲欧美| 欧美老女人性视频| 精品一区二区三区免费看| 精品少妇人妻av一区二区| 美女视频一区二区三区| 黄色av免费播放| 欧美日韩一区 二区 三区 久久精品| 你懂的免费在线观看视频网站| 欧美在线视频免费| 亚洲欧洲色图| 五月天婷婷激情视频| 国产亚洲成aⅴ人片在线观看| 亚洲黄色免费观看| 亚洲美女福利视频网站| 久久91导航| 日韩中文一区二区三区| 美国毛片一区二区| 欧美日韩国产一二三区| 这里只有精品免费| av网站在线免费看推荐| 成人自拍偷拍| 日韩午夜免费视频| 少妇饥渴放荡91麻豆| 日本丶国产丶欧美色综合| av中文天堂在线| 成人精品aaaa网站| 欧美日韩一区二区高清| 漂亮人妻被黑人久久精品| 欧美日韩中文字幕| 国产黄色片在线观看| 国产日韩精品在线| 欧美特黄a级高清免费大片a级| 女性生殖扒开酷刑vk| 欧美日韩免费观看中文| 国产1区2区3区在线| 成人一区二区电影| 亚洲国产第一| 国产精成人品免费观看| 欧美高清你懂得| 成人免费高清观看| 蜜桃视频成人| 国产伦精品一区二区三区免费 | 色哦色哦哦色天天综合| 日本高清中文字幕在线| 成人免费在线看片| 性xx色xx综合久久久xx| 毛片久久久久久| 精品对白一区国产伦| 日韩精品影院| 亚洲激情免费视频| 26uuuu精品一区二区| 国产一区二区女内射| 久久久久久亚洲精品| 精品盗摄女厕tp美女嘘嘘| 午夜免费视频网站| 色综合天天性综合| 最新国产在线拍揄自揄视频| 九色综合日本| 国产曰批免费观看久久久| www.国产高清| 久久香蕉国产线看观看av| 婷婷亚洲精品| 一级片免费在线观看视频|