Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การกลับสตริงแบบ Iterative ใน C++

โจทย์

มีหลายวิธีในการกลับสตริงในโค้ด 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