演算法題 倒置字串 逐詞

2021-08-20 07:44:56 字數 2534 閱讀 9643

[程式設計題]倒置字串

時間限制:1秒空間限制:32768k

將一句話的單詞進行倒置,標點不倒置。

比如 i like beijing. 經過函式後變為:beijing. like i

輸入

i like beijing.

輸出

beijing. like i

思路:python中的字串是無法改變的,倒置乙個字串則需要要建立乙個新的拷貝;最簡單的方法,當然是步長為「-1」的切片:

ans = str[::-1]
便可完成按字元倒置

如果要是按單詞來反轉,需要三步完成:

ans = str.split() #字串按預設值空格分割/**,此時str為乙個list,list中每個元素為乙個完整的單詞(和標點符號,如果有的話)!

ans.reverse() #reverse 倒置字串

ans = ' '.join(result) #拼接list中的每個元素形成完整新串

ans = ' '.join(astring.split()[::-1])
但是[::-1]降低了可讀性,不過也可以這樣寫:

ans = ' '.join(reversed(astring.split()))
**如下:

#-*- coding:utf-8 -*-

ans = list(input().split())[::-1] #split()指定分隔符進行切片 預設就是空格 [::-1]切片範圍預設,步進-1

print(' '.join(tmp for tmp in ans)) #join連線字串list

主要利用split()指定分隔符切分/**函式,[::-1]python list靈活的切片操作,以及join格式化字串list拼接

其中使用函式的文件,就算你不熟悉,一看便知

python split()方法中文文件

python join方法中文文件

join方法詳解

split()函式詳解

python的slice notation 切片操作//此切片非彼切片:)

我們把切片分為兩種格式(給定步進值與不給定步進值)

比如給乙個0~9的陣列

a = [0,1,2,3,4,5,6,7,8,9]
tips:切片操作統一都是左閉右開

1.給定步進值-—b = a[i:j]

表示複製a[i]到a[j-1],以生成新的list物件
b = a[1:3] 那麼,b的內容是 [1,2]

當i預設時,預設為0,即 a[:3]相當於 a[0:3]

當j預設時,預設為len(alist), 即a[1:]相當於a[1:10]

當i,j都預設時,a[:]就相當於完整複製乙份a了

2.不給定步進值-—b = a[i:j:s]
表示複製a[i]到a[j-1],但s表示步進,預設為1,即每向後乙個值便取乙個,如果s為2即隔乙個取乙個值
所以a[i:j:1]相當於a[i:j]

當s<0時,i預設時,預設為-1. j預設時,預設為-len(a)-1

所以a[::-1]相當於 a[-1:-len(a)-1:-1],也就是從最後乙個元素到第乙個元素複製一遍。

如果還不理解,自己拿個list去測試,就會明白了

同時此題看到網上大佬們的解法

#! python3

#-*- coding:utf-8 -*-

import sys

if __name__=='__main__':

forline

in sys.stdin:

print(' '.join(reversed(line.strip().split(' '))))

基本大同小異

其中幾個點明白了就會理解

tips:reversed()是python3特有的!

str.strip([chars]);

引數 chars – 移除字串頭尾指定的字元。

這裡strip方法python2與python3共有,但略有不同

python2—strip函式的引數char預設值為為空格或換行符

python3—strip函式的引數char預設值為為空格

python3-strip()方法

python2-strip()方法

3.join(),split()見上文!

大同小異,語句操作順序不同

#-*- coding:utf-8 -*-

str_x = input().split()

print(' '.join(str_x[::-1]))

經典演算法 字串倒置

這個就很簡單了,直接發 吧!include include using namespace std string reverse string s return s int main 演算法很簡單,就不細說了。這裡要注意的是length和strlen的區別。兩者都是求字串的長度。length abc...

倒置字串

題目描述 通過鍵盤輸入任意乙個字串序列,除空格 製表符和換行符外,可能包含其他任意字元。請編寫乙個程式,自動實現倒置字串中的各個字元的位置。如果輸入 abc 結果將是 cba 輸入 輸入字串,長度不超過為100 輸出 輸出字串 樣例輸入 abc樣例輸出 cba提示 你的程式應該從標準輸入stdin ...

倒置字串

通過鍵盤輸入任意乙個字串序列,除空格 製表符和換行符外,可能包含其他任意字元。請編寫乙個程式,自動實現倒置字串中的各個字元的位置。如果輸入 abc 結果將是 cba 解法一 stl解法 include include include using namespace std int main cout...