Weaving Wong

总觉得该写点啥...

嗨,我是Weaving,一名机器学习爱好者.


分享读书、学习、生活感悟

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

题目

请实现一个函数,将一个字符串中的每个空格替换成“%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

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()

最近的文章

剑指Offer--(1)查找重复的数字

摘要从这个时间段开始,做一些编程的练习。回想起来,入学已经一年有余了,一直以来学的东西杂而多,感觉有一些抓不到主要矛盾,不过,大的方向上存在的技术壁垒还是依然存在的,我想,无论以后具体从事的是哪一种岗位,基本功还是需要的,现在想想也是可笑。每天学的东西听起来都是高大上,可以真正自己有几斤几两,还是特别清楚的。所以还是把基础打好吧。另外,在实验室的学习暂时没有项目作为引导,所以实习是很有必要。过了这一段时间,是该要出去锻炼一下了。Python语言实现1.采用字典(类似hash表)方法 利用...…

数据结构继续阅读
更早的文章

剑指Offer--(2)二位数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题目解读 python 在二维数组中的array的格式是array[row][column],所以在遍历时需要统计多维数组的行数和列数的时候,如果是直接对数组名求len(array),那得到的是多维数组的行数,如果是对某一行求len(array[i])则是求第i维的长度,也即是列数。# -*...…

数据结构继续阅读