zoukankan      html  css  js  c++  java
  • 821. 字符的最短距离 c++实现方法

    1.题目描述

    给定一个字符串 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 中的所有字母均为小写字母。

    2.解决方法

    class Solution {
    public:
        vector<int> shortestToChar(string S, char C) {
            vector<int> res;
            vector<int> con;
            int l=0;
            int k=0;
            int Size=S.size();
            int cs=0;
            for(int i=0;i<S.size();i++)
            {
              int tem=S.find(C,i);
                if(tem!=-1)
                {con.push_back(tem);
                i=tem;
                }
            }
            cs=con.size();
                 while(1)
                 {
                     if(k<=con[l]&&l==0)
                     {
                         res.push_back(con[l]-k);
                         k++;
                     }
                     else if(k<=con[l]&&l>=1)
                     {   int m=min(con[l]-k,k-con[l-1]);
                         res.push_back(m);
                         k++;
                     }
                     else if(k>con[l]&&l==cs-1)
                     {
                         res.push_back(k-con[l]);
                         k++;
                     }
                     else
                     {
                         l++;
                     }
                     
                     if(k==Size)
                         return res;
                 }
        }
    };
  • 相关阅读:
    【bzoj2669】[cqoi2012]局部极小值 容斥原理+状压dp
    默默的等式
    P3403 跳楼机
    作物
    【bzoj3174】[Tjoi2013]拯救小矮人
    【bzoj4976】宝石镶嵌
    BZOJ2121-字符串游戏
    mzf的考验
    牛客网round1
    jloi2015
  • 原文地址:https://www.cnblogs.com/mydomain/p/9991118.html
Copyright © 2011-2022 走看看