Skip to content

Commit 7954d52

Browse files
committed
6 problems solved.
1 parent cff8589 commit 7954d52

File tree

6 files changed

+139
-0
lines changed

6 files changed

+139
-0
lines changed

src/2165.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
long long smallestNumber(long long num) {
2+
if (num == 0)
3+
return 0;
4+
else if (num < 0)
5+
{
6+
num = -num;
7+
string s = to_string(num);
8+
sort(s.begin(), s.end(), greater<char>());
9+
return -1*stoll(s, nullptr);
10+
}
11+
else
12+
{
13+
string s = to_string(num);
14+
sort(s.begin(), s.end());
15+
int len = s.size();
16+
int i = 0;
17+
for (i = 0; i < len; ++i)
18+
{
19+
if(s[i] != '0')
20+
break;
21+
}
22+
if (i != len)
23+
{
24+
char c = s[i];
25+
for (; i >= 1; --i)
26+
{
27+
s[i] = s[i-1];
28+
}
29+
s[0] = c;
30+
}
31+
32+
return stoll(s, nullptr);
33+
}
34+
}

src/2186.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
int minSteps(string s, string t) {
2+
int num1[26] = {0};
3+
int num2[26] = {0};
4+
int len1 = s.size(), len2 = t.size();
5+
for (int i = 0; i < len1; ++i)
6+
num1[s[i]-'a']++;
7+
for (int i = 0; i < len2; ++i)
8+
num2[t[i]-'a']++;
9+
10+
int ct = 0;
11+
for (int i = 0; i < 26; ++i)
12+
ct += abs(num1[i]-num2[i]);
13+
14+
return ct;
15+
}

src/2201.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
int digArtifacts(int n, vector<vector<int>>& artifacts, vector<vector<int>>& dig) {
2+
map<pair<int,int>,int> mp;
3+
int len = artifacts.size();
4+
for (int i = 0; i < len; ++i)
5+
{
6+
int r1 = artifacts[i][0], c1 = artifacts[i][1];
7+
int r2 = artifacts[i][2], c2 = artifacts[i][3];
8+
for (int j = r1; j <= r2; ++j)
9+
{
10+
for (int k = c1; k <= c2; ++k)
11+
mp[make_pair(j,k)] = i+1;
12+
}
13+
}
14+
15+
int sz = dig.size();
16+
for (int i = 0; i < sz; ++i)
17+
mp[make_pair(dig[i][0], dig[i][1])] = 0;
18+
19+
set<int> st;
20+
auto iterLast = mp.end();
21+
for (auto iter = mp.begin(); iter != iterLast; ++iter)
22+
{
23+
if (iter->second != 0)
24+
st.insert(iter->second);
25+
}
26+
27+
return len - st.size();
28+
}

src/2232.cpp

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
string minimizeResult(string expression) {
2+
int num1 = 0, num2 = 0;
3+
int len = expression.size();
4+
int index = expression.find('+');
5+
int m = len-1-index;
6+
for (int i = 0; i < index; ++i)
7+
num1 = num1*10 + (expression[i]-'0');
8+
for (int i = index+1; i < len; ++i)
9+
num2 = num2*10 + (expression[i]-'0');
10+
11+
int digit1[20] = {1,num1}, digit2[20] = {num2,1};
12+
int n = pow(10, index-1);
13+
for (int i = 1; i < index; ++i)
14+
{
15+
digit1[i*2] = num1/n;
16+
digit1[i*2+1] = num1%n;
17+
n /= 10;
18+
}
19+
n = 10;
20+
for (int i = 1; i < m; ++i)
21+
{
22+
digit2[i*2] = num2/n;
23+
digit2[i*2+1] = num2%n;
24+
n *= 10;
25+
}
26+
27+
int minval = 1e9;
28+
int p = 0, q = 0;
29+
for (int i = 0; i < index; ++i)
30+
{
31+
for (int j = 0; j < m; ++j)
32+
{
33+
int val = digit1[i*2]*(digit1[i*2+1] + digit2[j*2])*digit2[j*2+1];
34+
if (val < minval)
35+
{
36+
minval = val;
37+
p = i;
38+
q = j;
39+
}
40+
}
41+
}
42+
43+
string res(len+2, ' ');
44+
int k = 0;
45+
for (int i = 0; i < len+2; ++i)
46+
{
47+
if (i == p)
48+
res[i] = '(';
49+
else if (i == len+1-q)
50+
res[i] = ')';
51+
else
52+
res[i] = expression[k++];
53+
}
54+
55+
return res;
56+
}

src/2235.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
int sum(int num1, int num2) {
2+
return num1 + num2;
3+
}

src/2236.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
bool checkTree(TreeNode* root) {
2+
return root->val == root->left->val + root->right->val;
3+
}

0 commit comments

Comments
 (0)