#include <map>
#include <string>
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
class Solution {
public:
void swap(int &num1, int &num2)
{
int tmp;
tmp =num1;
num1 = num2;
num2 = tmp;
}
int removeElement(vector<int>& nums, int val)
{
int left,right, cnt;
cnt = left = 0;
right = nums.size();
cout<<"the size of right is "<< right<<endl;
while(left < right)
{
if(nums[left] != val)
left++;
else
{
while(left < right && nums[right-1] == val)
right--;
swap(nums[left],nums[right-1]);
}
}
return left;
}
};
int main()
{
Solution sel;
vector<string> strs = {"dog","racecar","car"};
vector <int> nums = {3,2,3,2};
cout << "In removeElement\n";
// if(sel.isPalindrome(-121))
// cout<< "true";
//else
// cout<<"false";
//cout << sel.longestCommonPrefix(strs);
//sel.isValid("({{{{}}}))")? cout<< "true": cout << false;
int len = sel.removeElement(nums,3);
for (int i = 0; i <len ; i++)
cout <<nums[i]<< endl;
return 0;
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RhY2s+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBTb2x1dGlvbiB7CnB1YmxpYzoKICAgIHZvaWQgc3dhcChpbnQgJm51bTEsIGludCAmbnVtMikKICAgIHsKICAgICAgICBpbnQgdG1wOwogICAgICAgIHRtcCA9bnVtMTsKICAgICAgICBudW0xID0gbnVtMjsKICAgICAgICBudW0yID0gdG1wOwogICAgfSAKICAgIGludCByZW1vdmVFbGVtZW50KHZlY3RvcjxpbnQ+JiBudW1zLCBpbnQgdmFsKSAKICAgIHsKICAgICAgICBpbnQgbGVmdCxyaWdodCwgY250OwoKICAgICAgICBjbnQgPSBsZWZ0ID0gMDsKICAgICAgICByaWdodCA9IG51bXMuc2l6ZSgpOwogICAgICAgIGNvdXQ8PCJ0aGUgc2l6ZSBvZiByaWdodCBpcyAiPDwgcmlnaHQ8PGVuZGw7CgogICAgICAgIHdoaWxlKGxlZnQgPCByaWdodCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKG51bXNbbGVmdF0gIT0gdmFsKQogICAgICAgICAgICAgICAgbGVmdCsrOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHdoaWxlKGxlZnQgPCByaWdodCAgJiYgIG51bXNbcmlnaHQtMV0gPT0gdmFsKQogICAgICAgICAgICAgICAgICAgIHJpZ2h0LS07CiAgICAgICAgICAgICAgICBzd2FwKG51bXNbbGVmdF0sbnVtc1tyaWdodC0xXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGxlZnQ7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIFNvbHV0aW9uIHNlbDsKICAgIHZlY3RvcjxzdHJpbmc+IHN0cnMgPSB7ImRvZyIsInJhY2VjYXIiLCJjYXIifTsKICAgIHZlY3RvciA8aW50PiBudW1zID0gezMsMiwzLDJ9OwogICAgIGNvdXQgPDwgIkluIHJlbW92ZUVsZW1lbnRcbiI7CiAgIC8vIGlmKHNlbC5pc1BhbGluZHJvbWUoLTEyMSkpCiAgIC8vIGNvdXQ8PCAidHJ1ZSI7CiAgIC8vZWxzZSAKICAgLy8gY291dDw8ImZhbHNlIjsKICAgLy9jb3V0IDw8IHNlbC5sb25nZXN0Q29tbW9uUHJlZml4KHN0cnMpOwogICAvL3NlbC5pc1ZhbGlkKCIoe3t7e319fSkpIik/IGNvdXQ8PCAidHJ1ZSI6IGNvdXQgPDwgZmFsc2U7CiAgIGludCBsZW4gPSBzZWwucmVtb3ZlRWxlbWVudChudW1zLDMpOwogICBmb3IgKGludCBpID0gMDsgaSA8bGVuIDsgaSsrKQogICBjb3V0IDw8bnVtc1tpXTw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQ==