輸入任意4個字元(如:abcd),並按反序輸出(如:dcba)
c++中我嘗試了五種解決辦法:
1. 直接使用陣列
#include
using
namespace
std;
int main()
cout
<<"reverse output:";
for (int j=3;j>=0;j--)
2.使用string來實現
string可以看成一種特殊的容器,在使用string的時候,由於不太熟悉,所以先查詢了string的講解。對於string的研究,以後有時間就繼續寫。
#include
#include
using
namespace
std;
int main()
在這裡要說明三點:(1)c++中string可以使用字元傳的方式進行訪問 (2)在使用string的時候一定要引入string庫(3)如果使用cin作為輸入流,不能接受空格或者回車,就是說,只能接受乙個單詞
3.使用stl中的容器和迭代器
容器(containers):管理某一類物件的集合,可以理解為裝資料的容器。每一類資料又有自帶的成員函式可以使用。例如,deque(佇列), list(鍊錶) ,vector(陣列) ,map
演算法(algorithms): 作用於容器,提供執行各種操作的方式。具體的實現方法是已經封裝好的,我們只要學會怎麼呼叫就好了。比如,初始化,排序,搜尋,和轉換等。
迭代器(iterators): 專門用來便利容器裡的物件元素的。
#include
#include
using
namespace
std;
int main()
list1.reverse();
cout
<<"reverse output:";
for(list
::iterator it=list1.begin();it!=list1.end();it++)
cout
0;}
在這個嘗試中,我使用的是list容器自帶的reverse的成員函式。
4.使用stl中的容器和演算法以及迭代器
#include
#include
#include
using
namespace
std;
int main()
reverse(list1.begin(),list1.end());
cout
<<"reverse output:";
for(list
::iterator it=list1.begin();it!=list1.end();it++)
cout
0;}
這裡使用了演算法中的reverse演算法。
5.使用stl中的容器和演算法以及反向迭代器
#include
#include
using
namespace
std;
int main()
cout
<<"reverse output:";
for(list
::reverse_iterator r_it=list1.rbegin();r_it!=list1.rend();r_it++)
cout
0;}
反向迭代器與正向迭代器的訪問機制是一樣的,只是在反向迭代器中,是把最後乙個元素當成第乙個元素,在++ 的過程中,是在向第乙個元素前進的方向。有了反向迭代器,就可以不用改變鍊錶中的內容了。
接下來要切換到python語言來完成這個題目了。
python語言相對於c++來說,有很多的不同之處,在此處,我只針對於解決這個題目涉及到的內容進行比較:
(1)在python中變數是不需要定義的。比如在傳統的c和c++中,我們需要告訴編譯器,我們定義的這個變數是乙個整型,浮點型,或者是字串。在python中我不需要,基於變數的資料型別,直譯器會分配指定記憶體,並決定什麼資料可以被儲存在記憶體中。
(2)1.第一種方法:切片
這種方法在python中是最簡單的。
str = raw_input("please input a string:")
print 'reverse output:\n'
print str[::-1]
2.直接反向輸出字串:是模仿切片的操作
str = raw_input("please input a string:")
print
'reverse output:\n'
length=len(str)-1
str1=''
while
length>=0:
str1 += str[length]
length -= 1
print str1
在這個小**中,出現了下面的錯誤:
traceback (most recent call
last):
file "c:/users/administrator/desktop/test/python1.py", line 6, in
str1 += str[length]
nameerror: name 'str1'
isnot defined
是因為雖然python中變數不需要宣告,但是如果沒有賦值就輸出就會報錯,說這個變數沒有定義。所以要加上strl=」,給它乙個空值。
3.因為list中有乙個reverse方法,可以將字串轉換成list。轉換成list之後如果要以字串的方式顯示,必須在利用join函式把list中的元素連線起來。
str = raw_input("please input a string:")
print
'reverse output:\n'
list1=list(str)
list1.reverse()
str1=''.join(list1)
print str1
如果不連線的話,輸出的結果是如下情況:
please input a string:123434
reverse output:
['4', '3', '4', '3', '2', '1']
Python高階用法篇 筆記
在python2.x中,items 用於 返回乙個字典的拷貝列表 returns a copy of the list of all items key value pairs in d 佔額外的記憶體。iteritems 用於返回本身字典列表操作後的迭代 returns an iterator o...
python練習 高階篇)
1 求1 2 3 4 5 99的和 count 1 s1 0 s2 0 while count 100 if count 2 0 s1 count else s2 count count 1 s s1 s2 print s 2 用python編寫程式,輸入一年份,判斷該年份是否是閏年並輸出結果 注 ...
C 陣列高階篇
陣列高階知識適合收藏 在陣列基礎知識上進一步提公升和鞏固 前提是 每行中的列數要相等 下面用 舉例說明 int row 2,colums 3 int nums 一維陣列 for int i 0 i row i cout endl 要給定陣列的行數 列數,可以只給定二維陣列列數 不給定行數 不能只給定...