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;
        }
    };
  • 相关阅读:
    java
    java
    java
    java
    java
    java
    java
    java
    sed命令的用法
    linux系统产生随机数的6种方法
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433946.html
Copyright © 2011-2022 走看看