leetcode345逆转字符

leetcode代码:

class Solution {
private:
    bool isvowel(char c){/*判断是否为元音字母*/
        if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U')
            return true;
        else
            return false;
    }
public:
    string reverseVowels(string s) {
        int i = 0, j = s.size()-1;
        while(i < j){/*i指针始终在j指针左边时*/
            if(!isvowel(s[i])){/*如果不是元音字母*/
                i++;/*继续向后移动*/
                continue;/*结束当前循环的一个轮回,该循环内后面的语句不执行,继续该循环的下一个轮回*/
            }
            if(!isvowel(s[j])){/*如果j指向的元素不是元音字母*/
                j--;/*将j指针向前移动*/
                continue;/*重新进行该循环的下一轮回*/
            }
            swap(s[i++],s[j--]);/*i和j都指向元音字母时,将两个指针指向的元素交换*/
        }
        return s;/*最后将调转后的字符串返回*/
    }
};

c++全代码:


#include <iostream>
#include <string>

using namespace std;

string reverseVowels(string s);

bool isvowel(char c) {/*判断是否为元音字母*/
	if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U')
		return true;
	else
		return false;
}

string reverseVowels(string s) {
	int i = 0, j = s.size() - 1;
	while (i < j) {/*i指针始终在j指针左边时*/
		if (!isvowel(s[i])) {/*如果不是元音字母*/
			i++;/*继续向后移动*/
			continue;/*结束当前循环的一个轮回,该循环内后面的语句不执行,继续该循环的下一个轮回*/
		}
		if (!isvowel(s[j])) {/*如果j指向的元素不是元音字母*/
			j--;/*将j指针向前移动*/
			continue;/*重新进行该循环的下一轮回*/
		}
		swap(s[i++], s[j--]);/*i和j都指向元音字母时,将两个指针指向的元素交换*/
	}
	return s;/*最后将调转后的字符串返回*/
}

int main()
{
	char str[50];/*出错点:这里只申明了5个字符的空间,但是一个有5个字符的字符串实际需要6个空间,少算了一个结束字符'\0'*/
	cout << "please input a string of characters:";
	cin >> str;
	cout << reverseVowels(str) << endl;
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值