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

def shortestToChar(S, C):    c=[]    s=[]    for i,v in enumerate(S):        if v==C:            c.append(i)    for i,v in enumerate(S):        m=[]        for j in c:            m.append(abs(i-j))        s.append(min(m))    return s

原文地址:https://www.cnblogs.com/zhangtianxia/p/9043620.html

时间: 2024-10-08 11:13:38

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

C#判断一个端口是不是被占用以及返回一个空闲端口

一.引言 在最近的工作当中,用到了 Socket 通信,然后要给 Socket 服务器端的监听获取一个空闲的本地监听端口. 对于这个获取方法要满足如下几点的要求: 这个端口不能是别的程序所使用的端口: 这个获取要支持异步,即多个线程同时获取不会出现返回多个相同的空闲端口(即线程安全): 这端口要有效的遍历一个区域内的端口,直到返回一个可用的空闲端口: 二.实现方法 网上的实现方法主要有两种: 1. 使用 .NET 提供的 IPGlobaProperties.GetIPGlobaPropertie

函数可以返回一个局部对象,而不能返回一个局部对象的引用(指针):

函数可以返回一个局部对象,而不能返回一个局部对象的引用(指针):当函数返回一个局部对象时,虽然这个对象已经释放,但是返回时会产生一个临时的对象.而当返回一个局部对象的引用时,这个对象已经不存在了.这就要求在函数参数中,包含一个引用或指针.int &func(int a,int b,int &retsult){ retsult = a + b; return &retsult}但是如下代码是错误的(返回局部对象的引用)int &func(int a,int b){ int &

JavaWeb向浏览器返回一个音频流

浏览器直接播放音频文件,1是直接访问一个html的音频文件,,2 是返回一个Java音频流给浏览器解析. 下面实现一个java的wav文件音频流,可以直接播放音频文件 1 package org.lib.speech.test; 2 import javax.servlet.http.HttpServlet; 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletRespons

objective-c 中数据类型之二 字符串(NSString)

// 1. 声明一个NSString对象,注意对象前要加'*'. NSString *string1; // 赋值方式1,初始化赋值: NSString *string2 = [[NSString alloc] initWithString: @"hello world!"]; // 赋值方式2: string1 = @"hello world!"; string2 = [NSString stringWithString: @"hello world!&

java字符串第一个字符与最后一个字符颠倒位置测试

最近做了一个需求,就是 通过OA 连接到我们系统,然后request里 带有base64加密后的字符串,并且第一个与最后一个位置颠倒了,所以需要先恢复正常的加密串,然后在解密. 所以首先工作是 先测试还原加密串,就是第一个与最有一个字符位置交换一下. 测试代码如下:  private static void test2() {   String st="012345=";   String firstChar=String.valueOf(st.charAt(0));   String

在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在"D:\java"文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 myPackage 包中创建一个YMD类,该类具有计算今年的年份.可以输出一个带有年月日的字符串的功能.设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名.年龄.出生日期.程序使用YMD的方法来计算年龄. 主要考包的运用 用到java.util.Calendar

jstl fn:substring()函数代码和用法 - 返回一个指定的字符串的开始和结束索引的一个子集。

uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 上面的 uri 根据你的实际情况定. ${fn:substring("你要截取的字符串"),beginIndex,endIndex} 网友回复:可以截取,用fn函数: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/fun

10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

/**10.使用TCP协议完成一个客户端一个服务器.客户端从键盘输入读取一个字符串,发送到服务器. 服务器接收客户端发送的字符串,反转之后发回客户端.客户端接收并打印. * 客户端*/ import java.io.*; import java.net.*; public class Test10_Client { public static void main(String[] args) throws Exception { Socket s = new Socket("192.168.0.

从一个字符串中提取一个子字符串

编写一个函数,它从一个字符串中提取一个子字符串.函数原型如下: int substr(char dst[], char src[],int start, int len) {} 目标是:从 src 数组起始位置向后偏移 start个字符的位置开始,最多复制 len 个非NUL 字符到 dst数组.在复制完毕之后, dst 数组必须以 NUL字节结尾.函数的返回值是存储于 dst 数组中的字符串的长度. #include<stdio.h> #include<stdlib.h> #de

10.16输入一个字符串,内有数字和非数字字符,如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组num中。例如123放在num[0]中,456放在num[1]中……统计共有多少个整数,并输出这些数。

10.16输入一个字符串,内有数字和非数字字符,如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组num中.例如123放在num[0]中,456放在num[1]中--统计共有多少个整数,并输出这些数. #include <stdio.h> int main(){ void search(char * parr, int * pnum); char arr[100],* parr; int num[30],* pnum; parr=arr;