iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
1
自我挑戰組

神羅天征! 一起(爆肝)征服程式解題系列 第 26

[Day 26] LeetCode - 344 Reverse String

  • 分享至 

  • xImage
  •  

本篇同步發布於Blog:[解題] LeetCode - 344 Reverse String

平台:

LeetCode

題號:

344 - Reverse String

題目連結:

https://leetcode.com/problems/reverse-string/

題目說明:

        給一個字串s,在不使用額外記憶體的條件,將字串裡的字元做反轉。

解題方法:

     建立一個索引值i,從0開始到字串長度的一半len/2,再將s[i]與s[len-i-1]做交換。

難度為Easy

程式碼 (C++ 與 C#):

#include <iostream>
#include <vector>
using namespace std;
 
class Solution {
public:
    void reverseString(vector<char>& s) {
        for(int i = 0 ; i < s.size() / 2;++i){
            char temp = s[i];
            s[i] = s[s.size()-i-1];
            s[s.size()-i-1] = temp;
        }
    }
};
 
int main() {
	vector<char> s{'h','e','l','l','o'};
	Solution sol;
	sol.reverseString(s);
	for(char c : s){
		cout << c << " ";
	}
	return 0;
}
using System;

namespace LeetCode344
{
	public class Solution {
	    public void ReverseString(char[] s) {
	        int mid = s.Length / 2;
	        for(int i = 0 ; i < s.Length / 2;++i){
	            char a = s[i];
	            s[i] = s[s.Length - i - 1];
	            s[s.Length-i-1] = a;
	        }
	    }
	}
	
	public class Program
	{
		public static void Main()
		{
			Solution sol = new Solution();
			char[] s = new char[]{'h', 'e', 'l', 'l', 'o'};
			sol.ReverseString(s);
			foreach(char c in s)
			{
				Console.Write(c + " ");
			}
			
			Console.Read();
		}
	}
}

GITHUB位置(C++ 與 C#):

https://github.com/u8989332/ProblemSolving/blob/master/LeetCode/C%2B%2B/300-399/344.cpp

https://github.com/u8989332/ProblemSolving/blob/master/LeetCode/C%23/300-399/344.cs


上一篇
[Day 25] LeetCode - 36 Valid Sudoku
下一篇
[Day 27] LeetCode - 7 Reverse Integer
系列文
神羅天征! 一起(爆肝)征服程式解題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言