美文网首页
【面试题】去除字符串中的空格

【面试题】去除字符串中的空格

作者: 不可能打工 | 来源:发表于2023-07-13 16:04 被阅读0次

    用python作答下题,不可使用strip和re:给定一个字符串S,去除S首尾的空格,并将字符串中间连续的多个空格替换为1个空格,返回处理后的字符串。

    GPT4作答

    def remove_extra_spaces(s):
        # 初始化一个空列表来存储单词
        words = []
        # 初始化一个空字符串来存储当前的单词
        word = ''
        # 遍历字符串中的每个字符
        for c in s:
            # 如果当前字符不是空格,将其添加到当前单词
            if c != ' ':
                word += c
            # 如果当前字符是空格,且当前单词不为空,将当前单词添加到单词列表,并清空当前单词
            elif word:
                words.append(word)
                word = ''
        # 如果最后一个单词不为空,将其添加到单词列表
        if word:
            words.append(word)
        # 使用单个空格连接单词列表,得到处理后的字符串
        return ' '.join(words)
    
    # 测试
    s = '  hello   world  '
    result = remove_extra_spaces(s)
    print(result)  # 输出:'hello world'
    

    在这个函数中,我们首先初始化了一个空列表words来存储单词,以及一个空字符串word来存储当前的单词。然后,我们遍历字符串中的每个字符。如果当前字符不是空格,我们将其添加到当前单词。如果当前字符是空格,且当前单词不为空,我们将当前单词添加到单词列表,并清空当前单词。最后,我们使用单个空格连接单词列表,得到处理后的字符串。

    我的答案

    def my_strip(s):
        if not s:
            return ''
        start = 0
        end = len(s) - 1
        while start <= end and s[start] == ' ':
            start += 1
        while end >= start and s[end] == ' ':
            end -= 1
        return s[start:end+1]
    
    
    def normilize(s):
        s=my_strip(s)
        if not s:
            return ''
        i=1
        n=len(s)
        res=''
        while i<n-1:
            if s[i]!=' ':
                res+=s[i]
            else:
                if s[i+1]!=' ':
                    res+=' '
    
            i+=1
        return res
    

    相关文章

      网友评论

          本文标题:【面试题】去除字符串中的空格

          本文链接:https://www.haomeiwen.com/subject/mcvmudtx.html