给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。
class Solution {
public int[] shortestToChar(String S, char C) {
int[] re=new int[S.length()];
for (int i = 0; i < S.length(); i++) {
if(S.charAt(i)==C)
{
re[i]=0;
}
else
{
re[i]=-1;
}
}
for (int i = 0; i < S.length(); i++) {
int minIndex=10001;
if(S.charAt(i)>'9')
{
//向后找
for (int j = i; j < S.length(); j++) {
if(S.charAt(j)==C)
{
if(minIndex>(j-i))
{
minIndex=j-i;
re[i]=minIndex;
break;
}
}
}
//向前找
for (int j = i; j >=0 ; j--) {
if(S.charAt(j)==C)
{
if(minIndex>(i-j))
{
minIndex=i-j;
re[i]=minIndex;
break;
}
}
}
}
}
return re;
}
}