目錄
- T1. 字符串插入
-
- 思路分析
- T2. 機器翻譯
-
- 思路分析
- T3. 棧基本操作
-
- 思路分析
- T4. 雙端隊列
-
- 思路分析
T1. 字符串插入
題目鏈接:SOJ D1138
有兩個字符串 s t r str str 和 s u b s t r substr substr, s t r str str 的字符個數不超過 10 10 10, s u b s t r substr substr 的字符個數為 3 3 3。(字符個數不包括字符串結尾處的 '\0'
。)將 s u b s t r substr substr 插入到 s t r str str 中 ASCII 碼最大的那個字符后面,若有多個最大則只考慮第一個。
時間限制:1 s
內存限制:64 MB
- 輸入
輸入包括若干行,每一行為一組測試數據,格式為str substr
。 - 輸出
對于每一組測試數據,輸出插入之后的字符串。 - 樣例輸入
abcab eee 12343 555
- 樣例輸出
abceeeab 12345553
思路分析
此題考查字符串遍歷,屬于入門題。
對于輸入的字符串 s t r str str,可以通過打擂臺的方式求出其中 ASCII 碼最大的字母位置,然后將字符串 s u b s t r substr substr 插入到該字符的后面即可。
/** Name: T1.cpp* Problem: 字符串插入* Author: Teacher Gao.* Date&Time: 2025/03/12 17:32*/#include <iostream>using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(0);string s, str;while (cin >> s >> str) {int pos = 0;for (int i = 1; i < s.size(); i++) {if (s[i] > s[pos]) pos = i;}s.insert(pos + 1, str);cout << s << "\n";}return 0;
}
T2. 機器翻譯
題目鏈接:SOJ D1062
VariantF 的電腦上安裝了一個機器翻譯軟件,他經常用這個軟件來翻譯英語文章。這個翻譯軟件的原理很簡單,它只是從頭到尾,依次將每個英文單詞用對應的中文含義來替換。對于每個英文單詞,軟件會先在內存中查找這個單詞的中文含義,如果內存中有,軟件就會用它進行翻譯;如果內存中沒有,軟件就會在外存中的詞典內查找,查出單詞的中文含義然后翻譯,并將這個單詞和譯義放入內存,以備后續的查找和翻譯。
假設內存中有 M M M 個單元,每單元能存放一個單詞和譯義。每當軟件將一個新單詞存入內存前,如果當前內存中已存入的單詞數不超過 M M M,軟件會將新單詞存入一個未使用的內存單元;若內存中已存入 M M M 個單詞,軟件會清空最早進入內存的那個單詞,騰出單元來,存放新單詞。
假設一篇英語文章的長度為 N N N 個單詞。給定這篇待譯文章,翻譯軟件需要去外存查找多少次詞典?假設在翻譯開始前,內存中沒有任何單詞。
時間限制:1 s
內存限制:64 MB
- 輸入
第一行為兩個正整數 M M M</