125
Input:
"A man, a plan, a canal: Panama"
Output: true
判断一个字符串是不是回文串
Output: true
判断一个字符串是不是回文串
class Solution {
public:
bool isPalindrome(string s) {
if ( s.length() == 0 || s.length() == 1)
return true;
int l = 0;
int r = s.length() - 1;
while (l < r)
{
//当字符不属于数字,并且不属于小写字母,并且不属于大写字母时
while ((s[l]<'0' || s[l] >'9') && (s[l]<'a' || s[l]>'z') && (s[l]<'A' || s[l]>'Z'))
{
if (l >= r)
break;
l++;
}
while ((s[r]<'0' || s[r] >'9') && (s[r]<'a' || s[r]>'z') && (s[r]<'A' || s[r]>'Z'))
{
if (l >= r)
break;
r--;
}
if (toupper(s[l])!=toupper(s[r]))
return false;
l++;
r--;
}
return true;
}
};
344 将字符串反转
class Solution {
public:
string reverseString(string s) {
int l = 0;
int r = s.length() - 1;
while (l < r)
swap(s[l++], s[r--]);
return s;
}
};
345 反转所有的元音字母
class Solution {
public:
string reverseVowels(string s) {
int l = 0;
int r = s.length() - 1;
while (l < r)
{
while (s[l] != 'a'&&s[l] != 'e'&&s[l] != 'i'&&s[l] != 'o'&&s[l] != 'u'
&&s[l] != 'A'&&s[l] != 'E'&&s[l] != 'I'&&s[l] != 'O'&&s[l] != 'U')
{
if (l >= r)
break;
l++;
}
while (s[r] != 'a'&&s[r] != 'e'&&s[r] != 'i'&&s[r] != 'o'&&s[r] != 'u'
&&s[r] != 'A'&&s[r] != 'E'&&s[r] != 'I'&&s[r] != 'O'&&s[r] != 'U')
{
if (l >= r)
break;
r--;
}
swap(s[l++], s[r--]);
}
return s;
}
};
11 填水缸
class Solution {
public:
int maxArea(vector<int>& height) {
assert(height.size() >= 2);
int l = 0;
int r = height.size() - 1;
int max_area = 0;
while (l < r)
{
if (height[l] < height[r])
{
int area = height[l]*(r - l);
if (area > max_area)
max_area = area;
l++;
}
else
{
int area = height[r]*(r - l);
if (area > max_area)
max_area = area;
r--;
}
}
return max_area;
}
};