forked from Nandinig24/Leetcode-Solutions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1750
83 lines (74 loc) · 1.29 KB
/
1750
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
class Solution {
public:
int minimumLength(string s) {
vector<char>v1,v2;
vector<int>count;
char a=s[0];
v1.push_back(a);
for(int i=0;i<s.size();i++){
if(s[i]!=a){
v1.push_back(s[i]);
a=s[i];
}
}
char b=s[s.size()-1];
v2.push_back(b);
for(int i=s.size()-1;i>=0;i--){
if(s[i]!=b){
v2.push_back(s[i]);
b=s[i];
}
}
for(auto i:v1)
cout<<i<<" ";
cout<<endl;
for(auto i:v2)
cout<<i<<" ";
int ans=0;
char chr1=s[0];
int d=0;
for(int i=0;i<s.size();i++){
if(s[i]==chr1)
d++;
else{
count.push_back(d);
d=1;
chr1=s[i];
}
}
if(d>0){
count.push_back(d);
}
int flag1=-1;
int flag2=-1;
for(int i=0;i<v1.size();i++){
if(v1[i]!=v2[i]){
flag1=i;
break;
// ans+=count[i];
}
}
for(int i=v1.size()-1;i>=0;i--){
if(v1[i]!=v2[i]){
flag2=i;
break;
// ans+=count[i];
}
}
if(flag1==-1 || flag2==-1){
if(count.size()%2==0)
return 0;
else{
int r=count[count.size()/2];
if(r==1)
return 1;
else return 0;
}
// return count[count.size()/2];
}
// cout<<flag1<<" "<<flag2<<endl;
for(int i=flag1;i<=flag2;i++)
ans+=count[i];
return ans;
}
};