Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
2
Task/Run-length-encoding/Java/run-length-encoding-1.java
Normal file
2
Task/Run-length-encoding/Java/run-length-encoding-1.java
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
10
Task/Run-length-encoding/Java/run-length-encoding-2.java
Normal file
10
Task/Run-length-encoding/Java/run-length-encoding-2.java
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
String encode(String string) {
|
||||
Pattern pattern = Pattern.compile("(.)\\1*");
|
||||
Matcher matcher = pattern.matcher(string);
|
||||
StringBuilder encoded = new StringBuilder();
|
||||
while (matcher.find()) {
|
||||
encoded.append(matcher.group().length());
|
||||
encoded.append(matcher.group().charAt(0));
|
||||
}
|
||||
return encoded.toString();
|
||||
}
|
||||
11
Task/Run-length-encoding/Java/run-length-encoding-3.java
Normal file
11
Task/Run-length-encoding/Java/run-length-encoding-3.java
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
String decode(String string) {
|
||||
Pattern pattern = Pattern.compile("(\\d+)(.)");
|
||||
Matcher matcher = pattern.matcher(string);
|
||||
StringBuilder decoded = new StringBuilder();
|
||||
int count;
|
||||
while (matcher.find()) {
|
||||
count = Integer.parseInt(matcher.group(1));
|
||||
decoded.append(matcher.group(2).repeat(count));
|
||||
}
|
||||
return decoded.toString();
|
||||
}
|
||||
38
Task/Run-length-encoding/Java/run-length-encoding-4.java
Normal file
38
Task/Run-length-encoding/Java/run-length-encoding-4.java
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
public class RunLengthEncoding {
|
||||
|
||||
public static String encode(String source) {
|
||||
StringBuffer dest = new StringBuffer();
|
||||
for (int i = 0; i < source.length(); i++) {
|
||||
int runLength = 1;
|
||||
while (i+1 < source.length() && source.charAt(i) == source.charAt(i+1)) {
|
||||
runLength++;
|
||||
i++;
|
||||
}
|
||||
dest.append(runLength);
|
||||
dest.append(source.charAt(i));
|
||||
}
|
||||
return dest.toString();
|
||||
}
|
||||
|
||||
public static String decode(String source) {
|
||||
StringBuffer dest = new StringBuffer();
|
||||
Pattern pattern = Pattern.compile("[0-9]+|[a-zA-Z]");
|
||||
Matcher matcher = pattern.matcher(source);
|
||||
while (matcher.find()) {
|
||||
int number = Integer.parseInt(matcher.group());
|
||||
matcher.find();
|
||||
while (number-- != 0) {
|
||||
dest.append(matcher.group());
|
||||
}
|
||||
}
|
||||
return dest.toString();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String example = "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW";
|
||||
System.out.println(encode(example));
|
||||
System.out.println(decode("1W1B1W1B1W1B1W1B1W1B1W1B1W1B"));
|
||||
}
|
||||
}
|
||||
32
Task/Run-length-encoding/Java/run-length-encoding-5.java
Normal file
32
Task/Run-length-encoding/Java/run-length-encoding-5.java
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class RunLengthEncodingTest {
|
||||
private RLE = new RunLengthEncoding();
|
||||
|
||||
@Test
|
||||
public void encodingTest() {
|
||||
assertEquals("1W", RLE.encode("W"));
|
||||
assertEquals("4W", RLE.encode("WWWW"));
|
||||
assertEquals("5w4i7k3i6p5e4d2i1a",
|
||||
RLE.encode("wwwwwiiiikkkkkkkiiippppppeeeeeddddiia"));
|
||||
assertEquals("12B1N12B3N24B1N14B",
|
||||
RLE.encode("BBBBBBBBBBBBNBBBBBBBBBBBBNNNBBBBBBBBBBBBBBBBBBBBBBBBNBBBBBBBBBBBBBB"));
|
||||
assertEquals("12W1B12W3B24W1B14W",
|
||||
RLE.encode("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW"));
|
||||
assertEquals("1W1B1W1B1W1B1W1B1W1B1W1B1W1B", RLE.encode("WBWBWBWBWBWBWB"));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void decodingTest() {
|
||||
assertEquals("W", RLE.decode("1W"));
|
||||
assertEquals("WWWW", RLE.decode("4W"));
|
||||
assertEquals("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW",
|
||||
RLE.decode("12W1B12W3B24W1B14W"));
|
||||
assertEquals("WBWBWBWBWBWBWB", RLE.decode("1W1B1W1B1W1B1W1B1W1B1W1B1W1B"));
|
||||
assertEquals("WBWBWBWBWBWBWB", RLE.decode("1W1B1W1B1W1B1W1B1W1B1W1B1W1B"));
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue