zoukankan      html  css  js  c++  java
  • Leetcode821.Shortest Distance to a Character字符的最短距离

    给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。

    示例 1:

    输入: S = "loveleetcode", C = 'e' 输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]

    说明:

    1. 字符串 S 的长度范围为 [1, 10000]。
    2. C 是一个单字符,且保证是字符串 S 里的字符。
    3. S 和 C 中的所有字母均为小写字母。

    class Solution {
    public:
        vector<int> shortestToChar(string S, char C) {
            vector<int> res;
            int len = S.size();
            for(int i = 0; i < len; i++)
            {
                if(S[i] == C)
                    res.push_back(0);
                else
                {
                    int j;
                    for(j = i; j < len; j++)
                    {
                        if(S[j] == C)
                        {
                            break;
                        }
                    }
                    int k;
                    for(k = i; k >= 0; k--)
                    {
                        if(S[k] == C)
                        {
                            break;
                        }
                    }
                    if(j >= len)
                    {
                        res.push_back(abs(i - k));
                    }
                    else if(k < 0)
                    {
                        res.push_back(abs(i - j));
                    }
                    else
                        res.push_back(min(abs(i - j), abs(i - k)));
                }
            }
            return res;
        }
    };
  • 相关阅读:
    topcoder srm 681 div1
    topcoder srm 683 div1
    topcoder srm 684 div1
    topcoder srm 715 div1
    topcoder srm 685 div1
    topcoder srm 687 div1
    topcoder srm 688 div1
    topcoder srm 689 div1
    topcoder srm 686 div1
    topcoder srm 690 div1 -3
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433947.html
Copyright © 2011-2022 走看看