-4

ライブラリモジュールやダミー変数、拡張スライス表記などを使用せずに文字列を逆にする方法を知りたいs[::-1]

たとえば、私は文字列を持っています >>>['f','a','l','u','b']

出力は>>>['b','u','l','a','f']

これらの2つのリンクを検索しましたが、この解決策を提供していません

Python での文字列反転

Python で文字列を逆にする

再帰を使用して文字列を逆にするPython

これらのリンクは答えを提供しません。私は文字列が不変であることを知っています。それがまさにリストで文字列文字を使用した理由であり、ここにいるほとんどの人が組み込み関数を使用してそれを解決しました(私はすでに知っています)。まだ具体的な答えは出ていません

この質問はインタビューで私に尋ねられました。そして、質問を非難したり反対票を投じたりするよりも、新規参入者を奨励する方が良いと思います

4

4 に答える 4

3

@Chris がコメントで述べたように、

seq = ['f','a','l','u','b'] # this is a list not a string

その場で簡単にリストを逆にすることができます

seq.reverse()
于 2012-08-03T13:34:01.283 に答える
1
s = 'falub'
s = ''.join(reversed(s))

また

list(reversed(s)) 

リストとして保持したい場合。

于 2012-08-03T13:32:37.977 に答える
1

これを使用して、スライス表記なしで反転できます。list()

s = "hello world"
s_reversed = ''.join(reversed(s))

// output
'dlrow olleh'
于 2012-08-03T13:33:34.200 に答える
1

あなたができるクレイジーなビット単位の操作があるかもしれませんが、それは私の得意ではありません。組み込み関数を「ライブラリモジュール」とは見なさないので、これを行うことができると思います:

my_str = "".join(reversed(my_str))

しかし、あなたは本当にこれをしたくないでしょう。

ETA: 実際に調べてみると、この問題に対する「クレイジーなビット単位の」解決策は、実際にははるかに複雑で、ライブラリ モジュールが必要な場合があるようです。

于 2012-08-03T13:37:10.987 に答える