题意:
给定一个字符串,只包含小写字母,求子串个数。
例子:
输入:aaabbaa
输出:5
(因为输入串中 包含 a,aa,aaa,b,bb 5个子串)
以下代码 在赛马网上 只过了17.5%,求路过大神 指点
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
string a;
int b[26]={0};
cin>>a;
// if(a=="")cout<<"99"<<endl;
//统计各个字符
int k,i;
for(i=0;i<a.length();i++)
{
k=a[i]-'a';
b[k]++;
}
vector <char>s;
char t;
int cc=0;
for(i=0;i<26;i++)
{
if(b[i]!=0){
t=i+'a';
s.push_back(t);cc++;}
}
//cc是abc个数,进行判别
int c=0,j;
for(j=0;j<cc;j++)
{
string sub="";
for(i=0;i<a.length();i++)
{
sub=sub+s[j];
if(a.find(sub)!=string::npos)c++;
}
}
cout<<c<<endl;
return 0;
}

一道来自百度机器学习工程师编程题,给定仅含小写字母的字符串,计算所有子串数量。例如,输入字符串'aaabbaa',输出为5,因有'a', 'aa', 'aaa', 'b', 'bb'五个子串。现有代码通过率仅为17.5%,寻求优化建议。"
80662241,5017485,Centos 7 安装ElasticSearch-head及解决跨域,"['elasticsearch6.x', 'elasticsearch-head', '跨域', 'centos 7']
668

被折叠的 条评论
为什么被折叠?



