有序数组去重
cpp
#include<bits/stdc++.h>
using namespace std;
long long a[10000010];
int n,s=0;
int main()
{
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int f=0;f<n;f++){
if(a[s]!=a[f]){
a[++s]=a[f];
}
}
s++;
for(int i=0;i<s;i++){
cout<<a[i];
}
return 0;
}
移除元素
cpp
#include<bits/stdc++.h>
using namespace std;
long long a[10000010];
int n,s=0,k;
int main()
{
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
cin>>k;
for(int f=0;f<n;f++){
if(k!=a[f]){
a[s++]=a[f];
}
}
for(int i=0;i<s;i++){
cout<<a[i];
}
cout<<endl;
return 0;
}
无重复字符最长字串
cpp
#include<bits/stdc++.h>
using namespace std;
int cnt[130]={0};
bool ifcf();
int main()
{
string a;
cin>>a;
int n=a.size();
int ma=-1;
string mas="";
int s=0,f=0;
while(true){
while(true){
cnt[a[f]]++;
if(cnt[a[f]]>1) break;
else ma=max(ma,f-s+1);
f++;
}
while(true){
cnt[a[s]]--;
s++;
if(ifcf()==true) break;
}
}
return 0;
}
bool ifcf(){
for(int i=97;i<122;i++){
if(cnt[i]>1) return false;
}
return true;
}