refactor: StringCompression (#5410)

refactor: StringCompression

Co-authored-by: alxkm <alx@alx.com>
This commit is contained in:
Alex Klymenko
2024-08-27 12:02:50 +02:00
committed by GitHub
parent af7c425010
commit e3ad3761fd
2 changed files with 9 additions and 11 deletions

View File

@ -1,7 +1,8 @@
package com.thealgorithms.strings;
/* References : https://en.wikipedia.org/wiki/Run-length_encoding
* String compression algorithm deals with encoding the string, that is, shortening the size of the
* string
/**
* References : https://en.wikipedia.org/wiki/Run-length_encoding
* String compression algorithm deals with encoding the string, that is, shortening the size of the string
* @author Swarga-codes (https://github.com/Swarga-codes)
*/
public final class StringCompression {
@ -14,19 +15,16 @@ public final class StringCompression {
* @return the compressed character array as string
*/
public static String compress(String input) {
// Keeping the count as 1 since every element present will have atleast a count
// of 1
// Keeping the count as 1 since every element present will have at least a count of 1
int count = 1;
String compressedString = "";
// Base condition to check whether the array is of size 1, if it is then we
// return the array
// Base condition to check whether the array is of size 1, if it is then we return the array
if (input.length() == 1) {
return "" + input.charAt(0);
}
// If the array has a length greater than 1 we move into this loop
for (int i = 0; i < input.length() - 1; i++) {
// here we check for similarity of the adjacent elements and change the count
// accordingly
// here we check for similarity of the adjacent elements and change the count accordingly
if (input.charAt(i) == input.charAt(i + 1)) {
count = count + 1;
}
@ -54,7 +52,6 @@ public final class StringCompression {
public static String appendCount(String res, int count, char ch) {
if (count > 1) {
res += ch + "" + count;
count = 1;
} else {
res += ch + "";
}