A - 雷同检测

题目描述:
考试的时候老师最讨厌有人抄袭了。自从有了电子评卷,老师要查找雷同卷,就容易多了,只要将两个人的答案输入计算机,进行逐个字符的比对,把相同的位置都找出来,就一目了然了。

输入格式
22 行,每行包含一串字符(长度不超过 200200)。

输出格式
11 行,包含若干个以空格分隔的数字,表示出现相同字符的位置。

输入示例:
I am suantoujun.
I am huayemei.
输出示例:
1 2 3 4 5 6 8 9

#include<stdio.h>
#include<string.h>
int main()
{
    char str1[201],str2[201];
    gets(str1);
    gets(str2);
    int len1,len2;
    len1=strlen(str1);
    len2=strlen(str2);
    
    int i,j=0;
    int x[201];
    for(i=0; i<len1; i++){
        if(str1[i]==str2[i]){
            x[j]=i+1;
            j++;
        }
    }

    for(i=0; i<j; i++){
        printf("%d ",x[i]);
    }


    getchar();
    getchar();
    return 0;
}

在Qt中检测串口接收数据是否重复,通常涉及到对连续接收到的数据包进行比较。以下是实现这一功能的基本步骤: 1. **设置串口通信**:首先需要配置好串口的相关属性如波特率、数据位等,并打开指定的串口号以便能够正常收发信息。 2. **读取并保存每次接收到的新数据**:每当从串口中获取到新的输入内容时,将其存储在一个变量或者是容器里用于后续处理。 3. **设计对比机制判断是否有重复项**: - 如果只需要简单地检查最近两次接收之间是否存在完全相同的字符串,则可以直接将当前缓冲区中的值同上一次记录下的做逐字节匹配; - 对于更复杂的情况比如查找一定时间窗口内所有已知消息序列中有无雷同比特流出现过的情形来说,可以考虑维护一个循环队列来缓存历史记录片段,并且采用哈希算法加速搜索过程; 4. **根据实际需求选择合适的策略响应发现的重复事件** 下面给出一段简单的示例代码框架展示如何利用`QSerialPort`库来进行上述操作的一部分: ```cpp #include <QCoreApplication> #include <QSerialPort> #include <QDebug> class SerialReader : public QObject { Q_OBJECT public: explicit SerialReader(QObject *parent = nullptr) : QObject(parent), lastData(""), serial(new QSerialPort(this)) {} private slots: void readyRead() { // 当有新数据到达触发该槽函数 QByteArray data = serial->readAll(); if (data == lastData) qDebug()<<"Detected duplicate message!"; else{ processNewData(data); lastData = data; } } private: QString lastData; // 上次接收的内容副本 QSerialPort* serial; void processNewData(const QByteArray &data){ // 处理非冗余的新进来的串行帧... } }; // ...初始化串口参数略... int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); SerialReader reader; return a.exec(); } ``` 此段程序仅为概念验证用途,在真实项目应用之前还需完善错误捕获等功能点以及优化性能等方面的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐川҉ ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值