LeetCode 344: Reverse String 题解

本文介绍了一个简单的LeetCode题目——字符串翻转的方法。通过C语言实现,利用指针从两端向中间逐步交换字符的方式,实现了字符串的翻转。文章提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从今天开始我也来刷刷 LeetCode,从最简单的题开始。


LeetCode 344: Reverse String

Problem:
Write a function that takes a string as input and returns the string reversed.


Example:
Given s = “hello”, return “olleh”.


这道题很简单,就是翻转字符串。LeetCode的题目答案都是以函数作为框架的,所以我们需要按照要求讲程序写到给定的函数中,并且返回正确的答案。

这道题可以从字符串的开头和结尾开始交换,然后逐渐向字符串的中间靠近,直到全部交换完成,整个字符串就翻转了,另外,这种方法不需要关心字符串的长度是奇数还是偶数。

复习到的知识点:C语言中的指针是可以进行加减运算的,字符串在内存中是连续存储的,并且以空字符(’\0’)结尾

通过代码如下:

char* reverseString(char* s) {
    char* low = s;                  //字符串的第一个字符
    char* high = s + strlen(s) - 1; //字符串的最后一个字符
    char temp;
    while(low < high){ //从两边到中间逐次交换字符
        temp = *low;
        *low++ = *high;
        *high-- = temp;
    }
    return s;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值