String length without len function

前端 未结 17 1173
逝去的感伤
逝去的感伤 2020-12-10 21:29

Can anyone tell me how can I get the length of a string without using the len() function or any string methods. Please anyone tell me as I\'m tapping my head ma

相关标签:
17条回答
  • 2020-12-10 21:57
    >>> sum(map(lambda x:1, "hello world"))
    11
    
    >>> sum(1 for x in "foobar")
    6
    
    >>> from itertools import count
    >>> zip(count(1), "baz")[-1][0]
    3
    

    A "tongue twister"

    >>> sum(not out not in out for out in "shake it all about")
    18
    

    some recursive solutions

    >>> def get_string_length(s):
    ...     return 1 + get_string_length(s[1:]) if s else 0
    ... 
    >>> get_string_length("hello world")
    11
    >>> def get_string_length_gen(s):
    ...     yield 1 + next(get_string_length_gen(s[1:])) if s else 0
    ... 
    >>> next(get_string_length_gen("hello world"))
    11
    >>> 
    
    0 讨论(0)
  • 2020-12-10 21:58

    Here's a method which isn't using neither len nor iteration:

    >>> a = 'a' * 200000
    >>> a.rindex(a[-1]) + 1
    200000
    

    To make it work for lists, which don't have rindex, use:

    >>> a = list(range(200000))
    >>> a.index(a[-1], -1) + 1
    200000
    
    0 讨论(0)
  • 2020-12-10 22:02

    Why you need to avoid the len function is beyond me, but strings are iterables. You should be able to do this:

    strlen = 0
    
    for c in myString:
      strlen += 1
    
    0 讨论(0)
  • 2020-12-10 22:04

    You can get the length of the string with a for loop.

    For example, instead of:

    string=input("Enter a string")
    print(len(string))
    

    Do this:

    string=input("Enter a string")
    a=0
    for letter in string:
      a=a+1
    print(a)
    
    0 讨论(0)
  • 2020-12-10 22:04

    It's a weird question so here's a weird answer!

    try:
      for i in itertools.count(): mystring[i]
    except IndexError:
      pass
    
    0 讨论(0)
  • 2020-12-10 22:04

    Try doing this, its pretty simple and easy

    def calculate_length(a):
        x=0
        for i in a:
           x+=1
        print(x)
    
    0 讨论(0)
提交回复
热议问题