class Solution {
public:
vector<int> shortestToChar(string S, char C) {
vector<int> nshort;
// 添加遊標值
int nmove = -1;
bool nFirstFind = 0;
for(int n = 0; n < S.size(); n++)
{
int nfindbegin = S.find(C, n) - n;
if(nmove == -1 && nfindbegin == -1)
{
// 不存在,給nshort賦值,返回 0
}
if(nmove == -1 && nfindbegin == 0)
{
// 找到第一個符號,開始標識遊標值
nmove = 0;
nFirstFind = 1;
}
if(nFirstFind == 1)
{
nmove += 1;
if(nfindbegin <= nmove && nfindbegin >= 0)
{
// 右距離小於等於左距離,不做處理
nshort.push_back(nfindbegin);
nmove = nfindbegin;
}
else
{
nshort.push_back(nmove);
}
}
else
{
nshort.push_back(nfindbegin);
}
}
return nshort;
}
};