View writeup Download handout View handin history Write your

View writeup

Download handout

View handin history

Write your code in the file Compress.java. Your code should go into a method with the following signature. You may write your own main method to test your code. The graders will ignore your main method:

public static String compress (String original){}

Run-length encoding (RLE) is a simple \"compression algorithm\" (an algorithm which takes a block of data and reduces its size, producing a block that contains the same information in less space). It works by replacing repetitive sequences of identical data items with short \"tokens\" that represent entire sequences. Applying RLE to a string involves finding sequences in the string where the same character repeats. Each such sequence should be replaced by a \"token\" consisting of:

the number of characters in the sequence

the repeating character

If a character does not repeat, it should be left alone.

For example, consider the following string:

After applying the RLE algorithm, this string is converted into:

In the compressed string, \"9w\" represents a sequence of 9 consecutive lowercase \"w\" characters. \"5e\" represents 5 consecutive lowercase \"e\" characters, etc.

Write a method called compress that takes a string as input, compresses it using RLE, and returns the compressed string. Case matters - uppercase and lowercase characters should be considered distinct. You may assume that there are no digit characters in the input string. There are no other restrictions on the input - it may contain spaces or punctuation. There is no need to treat non-letter characters any differently from letters.

Thank you in advance

Solution

Compress.java

package com.examples;

public class Compress {
   public static void main(String[] args) {
       java.util.Scanner in = new java.util.Scanner(System.in);
       System.out.println(\"Enter the String: \");
       String s = in.next();
       String compressString = compress(s);
       System.out.println(compressString);

   }
   public static String compress (String original){
       String str = \"\";
       int count = 1;
       for(int i=0; i<original.length()-1; i++){
           if(original.charAt(i) == original.charAt(i+1)){
               count++;
               if(i == original.length()-2){
                   if(count == 1){
                       str = str + original.charAt(i);
                   }
                   else{
                       str = str + count + original.charAt(i);
                   }                  
               }
           }
           else{
               if(count == 1){
                   if(i == original.length() - 2){
                       str = str + original.charAt(i);
                       str = str + original.charAt(i+1);
                   }
                   else{
                   str = str + original.charAt(i);
                   }
               }
               else{
                   if(i == original.length() - 2){
                       str = str + count + original.charAt(i);
                       str = str + original.charAt(i+1);
                   }
                   else{
                       str = str + count + original.charAt(i);
                   }                  
                  
               }
               count = 1;
           }
       }
       return str;
   }
}

Output:

Enter the String:
qwwwwwwwwweeeeerrtyyyyyqqqqwEErTTT
q9w5e2rt5y4qw2Er3T

View writeup Download handout View handin history Write your code in the file Compress.java. Your code should go into a method with the following signature. You
View writeup Download handout View handin history Write your code in the file Compress.java. Your code should go into a method with the following signature. You

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site