字符串'之间的差异;s的最大大小及其实际容量(以c++; 我想问一个关于C++中字符串的问题。
我写了一些代码来比较从字符串计算出来的后缀和前缀,如下所示字符串'之间的差异;s的最大大小及其实际容量(以c++; 我想问一个关于C++中字符串的问题。,c++,string,C++,String,我写了一些代码来比较从字符串计算出来的后缀和前缀,如下所示 string s; int num = 0; for(int i = 1; i <s.size(); i++) { string prefix = s.substr(0,s.size()-i); string suffix = s.substr(i,s.size()-i); cout <<"prefix : "&
string s;
int num = 0;
for(int i = 1; i <s.size(); i++)
{
string prefix = s.substr(0,s.size()-i);
string suffix = s.substr(i,s.size()-i);
cout <<"prefix : "<<prefix<<" suffix : "<<suffix<<endl;
if(prefix==suffix){
num = prefix.size();
break;
}
}
字符串s;
int num=0;
对于(int i=1;i您的输入方法是什么?您的编译器肯定没有提醒您有关您输入的任何信息。请尝试更准确地说明发生了什么。如果必要,请使用屏幕截图。其次,在任何现代通用计算机上,1MB是一个非常小的字符串。它不大,更不用说非常大。它大约是例如,我正在写的笔记本电脑中的RAM。关于你的问题#2,你的算法有二次时间。要了解这一点,我建议你找出原因。在你理解了为什么它有二次时间后,将其简化为线性应该不难。比较字符串两端的字符应该不容易,l指向字符串的中心并在找到两个不同的字符时将其打断?您的输入方法是什么?您的编译器肯定没有提醒您有关输入的任何信息。请尝试更准确地描述发生的情况。如果必要,请使用屏幕截图。其次,在任何现代通用计算机上,1MB是一个非常小的字符串。它不是大,更不用说非常大。例如,它大约是我正在写的笔记本电脑内存的万分之一。关于你的问题#2,你的算法有二次时间。要了解这一点,我建议你找出原因。在你理解了为什么它有二次时间后,应该不难将其简化为线性。be比较字符串两端的字符更容易,循环到字符串的中心,如果发现两个不同的字符则中断?