给您一个字符串数组,后跟两个单词。必须找到给定字符串数组中两个单词之间的最小距离
例如:
(“快速”,“棕色”,“狐狸”,“快速”)
距离(“fox”,“the”)=3
距离(“quick”,“fox”)=1
为什么这段代码在下面给出的测试用例中失败了?是吗?
#include<iostream>
#include<string>
#include<bits/stdc++.h>
using namespace std;
int search(vector<string>v,string s1)
{
for(int i=0;i<v.size();i++)
{
if(v[i]==s1)
{
return i;
}
}
return -1;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin >> n;
vector<string> v;
for(int i = 0; i < n; ++i)
{
string a;
cin >> a;
v.push_back(a);
}
string s1;
cin >> s1;
string s2;
cin >> s2;
int p, y;
p = search(v, s1);
y = search(v, s2);
int d = abs(p-y);
cout<<d<<endl;
}
return 0;
}
回答错误!!!回答错误
可能您的代码在多个测试用例(TCs)中无法正常工作。
代码失败的第一个测试用例:
输入:
五十二
rbkiruxixlqpjkbcdctwvsogiurmicjafuiwrhhqsyiflkjqodomwfvhanvirgjydtyudgnyhweujpmxtdmsiickxyvrffri rbkiruxixlqpjkbcdctwvsogiurmicjafuiwrhhqsyiflkjqodomwfvhanvirgjydtyudgnyhweujpmxtdmsiickxyvrffri ffyvehskceaqevtqqectpasluasmkvdpbelhlgtqkw ffyvehskceaqevtqqectpasluasmkvdpbelhlgtqkw ffyvehskceaqevtqqectpasluasmkvdpbelhlgtqkw 变相世界qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqRckknhuefborlyoo公司Ueimikiamambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhuefborlyoo ueimikiambnhuefborlyoo ueimikiambnhifffbfigtqrckkhuefborlyao ueimikiambnhifffbfigtqrckkhueforlyooUeimikiamambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhuefborlyoo ueimikiambnhuefborlyoo ueimikiambnhifffbfigtqrckkhuefborlyao ueimikiambnhifffbfigtqrckkhueforlyooUeimikiamambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhuefborlyoo ueimikiambnhuefborlyoo ueimikiambnhifffbfigtqrckkhuefborlyao ueimikiambnhifffbfigtqrckkhueforlyooUeimikiamambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhdivnfbfigtqkrcknhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhiffigtqrckkhuefborlyao ueimikiambnhuefborlyoo ueimikiambnhuefborlyoo ueimikiambnhifffbfigtqrckkhuefborlyao ueimikiambnhifffbfigtqrckkhueforlyoo中国人民银行是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的国家,是世界上最重要的upuwqwvqwqtvqpytysnojdln公司
我想说什么
其正确输出是:
十一
代码的输出是:
德意志北方银行
最佳答案
您的代码没有处理输入数组中的重复字符串。
对于eg,如果输入数组["ghi", "abc", "abc", "abc", "ghi", "def", "ghi", "def"]
那么“abc”和“def”之间的最小距离应该是:2(在index3
和5
之间),但是您的代码将输出:4