Skip to content

Commit f3c96c0

Browse files
committed
solve 1405
1 parent bd19e11 commit f3c96c0

File tree

4 files changed

+72
-0
lines changed

4 files changed

+72
-0
lines changed

1405/HappyString.sln

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.0.31903.59
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HappyString", "HappyString\HappyString.csproj", "{D1E8A382-FF3E-4EA8-BE86-47BD3382AFC2}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(SolutionProperties) = preSolution
14+
HideSolutionNode = FALSE
15+
EndGlobalSection
16+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
17+
{D1E8A382-FF3E-4EA8-BE86-47BD3382AFC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
18+
{D1E8A382-FF3E-4EA8-BE86-47BD3382AFC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
19+
{D1E8A382-FF3E-4EA8-BE86-47BD3382AFC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
20+
{D1E8A382-FF3E-4EA8-BE86-47BD3382AFC2}.Release|Any CPU.Build.0 = Release|Any CPU
21+
EndGlobalSection
22+
EndGlobal

1405/HappyString/HappyString.csproj

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net9.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
</PropertyGroup>
9+
10+
</Project>

1405/HappyString/Program.cs

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// See https://aka.ms/new-console-template for more information
2+
Console.WriteLine("Hello, World!");

1405/HappyString/solution.cs

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System.Text;
2+
3+
public class Solution {
4+
public string LongestDiverseString(int a, int b, int c) {
5+
PriorityQueue<(int,char),int> priorityQueue= new PriorityQueue<(int,char),int>();
6+
priorityQueue.Enqueue((a,'a'),-a);
7+
priorityQueue.Enqueue((b,'b'),-b);
8+
priorityQueue.Enqueue((c,'c'),-c);
9+
char last='d';
10+
StringBuilder returnstring= new StringBuilder();
11+
while (priorityQueue.Peek().Item1 > 0){
12+
var biggest = priorityQueue.Dequeue();
13+
if (biggest.Item2 == last){
14+
var seccond = priorityQueue.Dequeue();
15+
if(seccond.Item1==0){
16+
return returnstring.ToString();
17+
}
18+
else{
19+
returnstring.Append(seccond.Item2);
20+
priorityQueue.Enqueue((seccond.Item1-1,seccond.Item2),-(seccond.Item1-1));
21+
priorityQueue.Enqueue(biggest,-biggest.Item1);
22+
last= seccond.Item2;
23+
}
24+
}
25+
else{
26+
int reps= Math.Min(2,biggest.Item1);
27+
last = biggest.Item2;
28+
for(int i=0; i<reps;i++){
29+
returnstring.Append(biggest.Item2);
30+
}
31+
priorityQueue.Enqueue((biggest.Item1-reps,biggest.Item2),-(biggest.Item1-reps));
32+
}
33+
34+
}
35+
return returnstring.ToString();
36+
37+
}
38+
}

0 commit comments

Comments
 (0)