袁愈权


私信TA

用户名:dotcpp0787148

访问量:782

签 名:

网工和电子的同学们 万事如意 祝你们也祝我

等  级
排  名 320
经  验 5479
参赛次数 4
文章发表 82
年  龄 19
在职情况 学生
学  校 贺州学院
专  业 网络工程

  自我简介:

雨吗,可惜洗刷不了那些污秽的心

解题思路:               喜欢暴力 嘿嘿嘿 !

注意事项:

参考代码:

#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 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »