V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
JasonLaw
V2EX  ›  Python

s 为'eccer', s[3:0:-1]为'ecc',而 s[3:-1:-1]却是'',而不是我期望的'ecce'?

  •  
  •   JasonLaw · Jun 24, 2023 · 1714 views
    This topic created in 1048 days ago, the information mentioned may be changed or developed.

    难道是 s[3:-1:-1]等价于 s[3:4:-1]?所以结果为''?


    关联的 LeetCode problem: Valid Palindrome II - LeetCode

    我的出现错误的 solution 。

    class Solution:
        def validPalindrome(self, s: str) -> bool:
            l, r = 0, len(s) - 1
            while l < r:
                if s[l] != s[r]:
                    return s[l + 1:r + 1] == s[r:l:-1] or s[l:r] == s[r - 1:l - 1:-1]
                l += 1
                r -= 1
            return True
    
    Supplement 1  ·  Jun 25, 2023

    Bing AI的回复有点帮助。

    相关的链接:python - Understanding negative steps in list slicing - Stack Overflow

    7 replies    2023-06-25 11:20:50 +08:00
    luozic
        2
    luozic  
       Jun 24, 2023   ❤️ 1
    +---+---+---+---+---+---+
    | P | y | t | h | o | n |
    +---+---+---+---+---+---+
    0 1 2 3 4 5
    -6 -5 -4 -3 -2 -1
    mkroen
        3
    mkroen  
       Jun 25, 2023
    s[3::-1]
    JasonLaw
        4
    JasonLaw  
    OP
       Jun 25, 2023
    @luozic #2 按照正常理解的话,我会觉得 s[3:-1:-1]的结果是'e'+'c'+'c'+'e',不包含'r',因为它是 stop index 所在的 char 。
    JasonLaw
        5
    JasonLaw  
    OP
       Jun 25, 2023
    @mkroen #3 我知道这样子可以,但是这样子我的代码就会变得复杂。我需要判断 stop 是否为-1 ,如果是-1 的话,就需要使用 s[3::-1]替代 s[3:-1:-1]。
    zizon
        6
    zizon  
       Jun 25, 2023
    s[3:-1:-1]
    -> s[3:4:-1]
    -> s[4:3:1]
    -> s[4:3] , 4 > 3
    evemoo
        7
    evemoo  
       Jun 25, 2023
    左闭右开 + 切片的顺序 = 答案
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1283 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 17:20 · PVG 01:20 · LAX 10:20 · JFK 13:20
    ♥ Do have faith in what you're doing.