原题链接:数据结构-Big Bang
解题思路: 喜欢暴力 嘿嘿嘿 !
注意事项:
参考代码:
#include"bits/stdc++.h" using namespace std; // 定义全局变量,用于存储输入的字符串和操作命令 string s, kk, kkk[11100] = {""}, jjj[11100]; int main() { int x; // 定义一个整数变量x,用于存储插入位置 while (cin >> s) { // 循环读取输入的命令 if (s == "insert") { // 如果命令是插入 cin >> x; // 读取插入的位置 cin >> kk; // 读取要插入的字符串 if (kkk[x] == "") { // 如果插入位置为空 kkk[x] = kk; // 直接插入字符串 } else { // 如果插入位置不为空 for (int i = x; i <= 1110; i++) { // 将插入位置及之后的元素向后移动一位 jjj[i] = kkk[i]; // 临时保存当前元素 } kkk[x] = kk; // 在指定位置插入新字符串 for (int i = x + 1; i < 1110; i++) { // 更新后续位置的元素 kkk[i] = jjj[i - 1]; // 恢复之前保存的元素 } } } if (s == "show") { // 如果命令是显示 if (kkk[1] == "") { // 如果第一个位置为空 cout << endl; // 输出空行 } else { // 如果第一个位置不为空 for (int i = 1; i <= 1110; i++) { // 遍历所有位置 if (kkk[i] == "") { // 如果遇到空位置 break; // 停止遍历 } cout << kkk[i] << ' '; // 输出当前位置的字符串 } cout << endl; // 输出换行符 } } if (s == "search") { // 如果命令是搜索 cin >> kk; // 读取要搜索的字符串 for (int i = 1; i <= 1110; i++) { // 遍历所有位置 if (kkk[i] == kk) { // 如果找到匹配的字符串 cout << i << endl; // 输出其位置 break; // 停止搜索 } } } if (s == "delete") { // 如果命令是删除 cin >> kk; // 读取要删除的字符串 for (int i = 1; i <= 1110; i++) { // 遍历所有位置 if (kkk[i] == kk) { // 如果找到匹配的字符串 kkk[i] = "!!!"; // 将其标记为删除状态 break; // 停止删除操作 } } for (int i = 1; i <= 1110; i++) { // 再次遍历所有位置 if (kkk[i] == "!!!") { // 如果找到被标记为删除的状态 for (int j = i; j <= 1110; j++) { // 从该位置开始向前移动元素 kkk[j] = kkk[j + 1]; // 覆盖当前元素 } break; // 停止移动操作 } } } } return 0; // 返回程序执行结果 }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复