小编Tim*_*hen的帖子

最短重复子串

我正在寻找一种有效的方法来提取最短的重复子串.例如:

input1 = 'dabcdbcdbcdd'
ouput1 = 'bcd'

input2 = 'cbabababac'
output2 = 'ba'
Run Code Online (Sandbox Code Playgroud)

我将不胜感激与此问题相关的任何答案或信息.

另外,在这篇文章中,人们建议我们可以使用正则表达式

re=^(.*?)\1+$
Run Code Online (Sandbox Code Playgroud)

找到字符串中最小的重复模式.但是这样的表达式在Python中不起作用并且总是返回一个不匹配(我是Python的新手,也许我想念一些东西?).

- - 跟进 - -

这里的标准是寻找最短的非重叠模式,其长度大于1并且具有最长的总长度.

python regex string-matching

6
推荐指数
1
解决办法
4015
查看次数

使用QDataStream读/写原始数据

我是相当新的QDataStream和Socket编程,和我想要做的就是从客户端发送一个quint32标头值(四个字节)到主机.但我在使用QDataStream时遇到了一些麻烦.

QByteArray data;
QDataStream ds(&data, QIODevice::ReadWrite);
int a = htonl(32);
char *head = (char*)&a;
for(int i=0;i<4;i++)
    qDebug() << QString::number(int((head[i]&0xff))+0x100, 16) << " ";
qDebug() << endl;
Run Code Online (Sandbox Code Playgroud)

这里,输出是"100 100 100 120",这就是我想要的.然后我尝试将其写入数据流.

ds.writeRawData(head, 4);
char *buffer = new char[4];
ds.readRawData(buffer, 4);
for(int i=0;i<4;i++)
    qDebug() << QString::number(int((buffer[i]&0xff))+0x100, 16) << " ";
qDebug() << endl;
Run Code Online (Sandbox Code Playgroud)

但这里的输出是"100 100 100 100"

我对QDataStream的使用有一些误解吗?

c++ qt

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

python ×1

qt ×1

regex ×1

string-matching ×1