字串反轉

2021-07-30 22:39:07 字數 774 閱讀 3298

題目描述

請實現乙個演算法,在不使用額外資料結構和儲存空間的情況下,翻轉乙個給定的字串(可以使用單個過程變數)。

給定乙個string inistring,請返回乙個string,為翻轉後的字串。保證字串的長度小於等於5000。

測試樣例:

「this is nowcoder」

返回:」redocwon si siht」

首先用python實現:

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

class

reverse:

defreversestring

(self, inistring):

# write code here

return inistring[::-1]

用python實現非常的簡單,直接使用字串切片功能,令原字串倒序輸出即可。

再來考慮用c/c++實現:

string reversestring(string inistring)

return inistring;

};

用c實現用的思想很簡單,直接定義乙個臨時字元變數char temp,把字串的第乙個字元inistring[0]賦給臨時變數,最後乙個字元inistring[len-1]賦給inistring[0],再把temp中的值賦給inistring[len-1],這是最後乙個字元。第一趟就完成了首尾字元的互換,需要注意的是終止條件,當字元長度為偶數時,最後兩個字元的index相鄰,滿足i

字串反轉

據說一道微軟的面試題,要求考慮時間和空間的優化,下面給出幾種通常字串反轉的方法 1 直接陣列操作 char strreverse char str return str 這種做法原來的str沒有儲存,原來的str也改變了 2 指標操作 char strreverse char str return ...

字串反轉

include include include 方法一 將第乙個字元和最後乙個互換,第二個和倒數第二個互換,如此依次迴圈下去 char strrev1 const char str return tmp free tmp 方法二 不額外申請一片儲存字串的記憶體空間,通過中間變數來改變傳遞進來的字串裡...

字串反轉

解法一 第一次看到這題目,想到最簡單 最直覺的解法就是 遍歷字串,將第乙個字元和最後乙個交換,第二個和倒數第二個交換,依次迴圈,即可,於是有了第乙個解法 const char str return tmp 這裡是通過陣列的下標方式訪問字串的字元,實際上用指標直接操作即可。解法二正是基於此,實現 為 ...