leetCode题解寻找最短字符路径

1、题目描述

2、分析

  最简单的方案,对每一个字符,向两边寻找。

3、代码

  

 1 vector<int> shortestToChar(string S, char C) {
 2         
 3         vector<int> ans;
 4         for(size_t i = 0; i < S.size();i++)
 5         {
 6             if(S[i] == C)
 7                 ans.push_back(0);
 8             else
 9             {
10                 int j = i-1;
11                 while( j >= 0 && S[j] != C) j--;
12                 int k = i+1;
13                 while( k <= S.size()-1 && S[k] != C) k++;
14                 if( S[j] == C && S[k] == C)
15                 {
16                     ans.push_back( min(i-j,k-i) );
17                 }else if( S[j] == C && S[k] != C )
18                 {
19                     ans.push_back( i-j);
20                 }else{
21                     ans.push_back( k-i);
22                 }
23                     
24                     
25             }
26         }
27         return ans;
28         
29     }

 

posted @ 2018-04-24 09:27  山里的小勇子  阅读(232)  评论(0编辑  收藏  举报