โจทย์
มีหลายวิธีในการกลับสตริงในโค้ด C++ รวมถึง stack, in-place และ iteration ในตัวอย่างนี้ สตริงง่ายๆ จะถูกกลับแบบ iterative ด้วยอัลกอริทึมดังนี้
อัลกอริทึม
START Step-1: รับสตริงอินพุต Step-2: หาความยาวของสตริงด้วยเมธอด length() Step-3: สลับตัวอักษรสุดท้ายไปเป็นตัวแรกโดยใช้ for loop Step-4: พิมพ์ ENDตามอัลกอริทึมด้านบน โค้ด C++ ด้านล่างถูกทดสอบดังนี้
ตัวอย่างโค้ด C++
#include <bits/stdc++.h> using namespace std; void strReverse(string& str){ int n = str.length(); // สลับตัวอักษรเริ่มจากสองข้าง cout<<"interative reverse (Tomhanks)::"; for (int i = 0; i < n / 2; i++) swap(str[i], str[n - i - 1]); } int main(){ string str = "Tomhanks"; strReverse(str); cout << str; return 0; }ผลลัพธ์
เมื่อโค้ดด้านบนคอมไพล์ สตริง "Tomhanks" จะถูกพิมพ์ในลำดับกลับดังนี้
Iterative reverse (Tomhanks):: sknahmoT