剑指Offer--(3)查找空格


title: 剑指Offer--(3)查找空格
categories: 算法与数据结构
tags: 数据结构


题目

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解读

此题需要清楚一个字符串类型的属性,也就是它具有哪些性质,比如是否可迭代,还是需要列表帮忙?索引怎么找?是否需要切片?字符串是否是可以直接拼接?

1.我的解答

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        for i in s:
            if i is ' ':
                #s[s.index(i)] = "20%"
                s = s[:s.index(i)] + "%20"+ s[s.index(i)+1:]
        return s

思路

字符串具有的性质归纳:

  1. 可迭代(可以使用for遍历)
  2. 不可变(与tuple类似),但可以由部分拼接成新字符串
  3. 可寻址(可用index())
  4. 可转变成list\tuple
  5. ...

2,其他解法

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        s = list(s)
        count=len(s)
        for i in range(0,count):
            if s[i]==' ':
                s[i]='%20'
        return ''.join(s) #将列表s重新连接起来,用”“连接(即中间无空隙)

3.更简洁的方法


# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        return s.replace(' ','%20')

利用了python的内置方法replace()

4.使用strip()函数


# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        res = ''
        for ele in s:
            if ele.strip():
                res += ele
            else:
                res += '%20'
        return res
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 5,831评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 5,769评论 0 5
  • cmd > ipconfig /flushdns
    afocusman阅读 2,372评论 0 0
  • 在昏暗和神秘的路灯底下,是什么在响动是谁在说话? 那扭动的身躯放射出光芒,照亮城市村镇的大小广场, 那是一群跳舞的...
    白羊先生阅读 3,604评论 0 1
  • 你死了 在我的心里 起起伏伏的乌云 在寂静的山林 追逐鸟巢倾覆的厄运 累卵化做泥土 与秋风蒿草呻吟 在山峦密布的壑...
    秋农i阅读 1,079评论 0 1