每日一道算法题(反转字符串)

例如,将字符串 hello 转换为 olleh

定义两个指针 lr,分别指向字符串的起始位置和末尾位置。

从字符串的两端开始,向中间逐步移动指针。每次移动时,交换指针 lr 所指向的字符,直到两个指针相遇或交错,此时所有字符已完成交换

代码:

每日一道算法题(反转字符串)_第1张图片

在使用 while 循环进行字符交换时,结束条件应设置为指针 l 小于指针 r。如果将结束条件设为“小于等于”,则当两个指针到达字符串的中间位置时,可能会执行一次不必要的交换。实际上,当两个指针指向中间的同一个字符或交错时,再进行交换是没有意义的。

你可能感兴趣的:(数据结构)