Interview Question
Country: United States
public static char[] convert(String s){
char[] temp = s.toCharArray() ;
int len = temp.length ;
char [] rel = new char[len];
int i = 0, k =0 ;
while( i <= len -1 && k <= len -1 ){
rel[k] = temp[i];
int count = 1 ;
while( i <= temp.length- 2 && temp[i] == temp[i+1] ){
count ++ ;
i = i +1;
}
if( count > 1 ){
rel[k+1] = Character.toChars(count + '0')[0];
k = k +2 ;
}else k = k + 1;
i = i + 1;
System.out.println(" i : " + i + " k : " + k );
}
return rel ;
}
import java.io.*;
public class Counts
{
public static void main(String[] args) throws IOException
{
InputStreamReader obj = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(obj);
System.out.println("Enter the string:");
String str = br.readLine();
int size = str.length();
char c[] = new char[size];
str.getChars(0,size,c,0);
//creating an integer array to store the values of the characters of the string array
int b[] = new int[size];
for(int i=0;i<size;i++)
{
int temp = (int)c[i];
b[i]=temp;
}
//now let us sort the array of integers using bubble sort
for(int i=0;i<size;i++)
{
for(int j=0;j+1<size;j++)
{
if(b[j+1]<b[j])
{
//do swapping
b[j] = b[j] + b[j+1];
b[j+1] = b[j] - b[j+1];
b[j] = b[j]-b[j+1];
}
}
}
//now take the contents of the values of the integer array and store them in the char array
System.out.println("Array after sorting");
for(int i=0;i<size;i++)
{
char cc = (char)b[i];
c[i]=cc;
System.out.println(c[i]);
}
//now let us count the frequency of each of the characters
System.out.println("--------------------------");
int length=0,m=0;
for(int i=0;i<size;i++)
{
char key = c[m];
System.out.print(key);
for(int j=m;j<size;j++)
{
if(c[j]==key)
{
length++;
}
else
{
break;
}
}
if(length==1)
{
System.out.print("");
}
else
{
System.out.print(length);
}
m += length;
length=0;
if(m==size)
break;
}
}
}
import java.io.*;
public class Counts
{
public static void main(String[] args) throws IOException
{
InputStreamReader obj = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(obj);
System.out.println("Enter the string:");
String str = br.readLine();
int size = str.length();
char c[] = new char[size];
str.getChars(0,size,c,0);
//creating an integer array to store the values of the characters of the string array
int b[] = new int[size];
for(int i=0;i<size;i++)
{
int temp = (int)c[i];
b[i]=temp;
}
//now let us sort the array of integers using bubble sort
for(int i=0;i<size;i++)
{
for(int j=0;j+1<size;j++)
{
if(b[j+1]<b[j])
{
//do swapping
b[j] = b[j] + b[j+1];
b[j+1] = b[j] - b[j+1];
b[j] = b[j]-b[j+1];
}
}
}
//now take the contents of the values of the integer array and store them in the char array
System.out.println("Array after sorting");
for(int i=0;i<size;i++)
{
char cc = (char)b[i];
c[i]=cc;
System.out.println(c[i]);
}
//now let us count the frequency of each of the characters
System.out.println("--------------------------");
int length=0,m=0;
for(int i=0;i<size;i++)
{
char key = c[m];
System.out.print(key);
for(int j=m;j<size;j++)
{
if(c[j]==key)
{
length++;
}
else
{
break;
}
}
if(length==1)
{
System.out.print("");
}
else
{
System.out.print(length);
}
m += length;
length=0;
if(m==size)
break;
}
}
}
public String compress(String target){
char [] chs = target.toCharArray() ;
int tail = 0 , j = 0 ;
for (int i = 1 ; i <= chs.length ; ++i) {
if (i == chs.length || chs[j] != chs[i]) {
chs[tail++] = chs[j] ;
if (i - j > 1) {
if (i - j < 10) {
chs[tail] = (char)((i - j) + '0');
tail++;
} else{
char [] digits = String.valueOf(i - j).toCharArray() ;
for (char c : digits) {
chs[tail++] = c ;
}
}
}
j = i ;
}
}
return new String(chs, 0, tail) ;
}
import java.util.LinkedHashMap;
import java.util.Map;
public class MyMap {
public static void main(String[] args) {
String s="aaahhrrrvfuuk";
Map<Character,Integer> m=new LinkedHashMap<Character,Integer>();
int value=0;
for(int i=0;i<s.length();i++){
if(m.containsKey(s.charAt(i))){
value=Integer.parseInt((m.get(s.charAt(i))).toString());
m.put(s.charAt(i), value+1);
}
else
m.put(s.charAt(i), 1);
}
for (Map.Entry entry : m.entrySet()) {
String key = entry.getKey().toString();;
Integer val =Integer.parseInt(entry.getValue().toString());
if(val==1)
System.out.print(key);
else
System.out.print(key + "" + val);
}
}
}
import java.util.LinkedHashMap;
import java.util.Map;
public class MyMap {
public static void main(String[] args) {
String s="aaahhrrrvfuuk";
Map<Character,Integer> m=new LinkedHashMap<Character,Integer>();
int value=0;
for(int i=0;i<s.length();i++){
if(m.containsKey(s.charAt(i))){
value=Integer.parseInt((m.get(s.charAt(i))).toString());
m.put(s.charAt(i), value+1);
}
else
m.put(s.charAt(i), 1);
}
for (Map.Entry entry : m.entrySet()) {
String key = entry.getKey().toString();;
Integer val =Integer.parseInt(entry.getValue().toString());
if(val==1)
System.out.print(key);
else
System.out.print(key + "" + val);
}
}
}
Java solution:
public static String compact(String s){
int n = s.length();
StringBuilder builder = new StringBuilder();
int idx = 0;
while (idx < n){
char c = s.charAt(idx);
int count = 0;
while (idx < n && s.charAt(idx) == c){
count++;
idx++;
}
builder.append(c);
if (count > 1){
builder.append(count);
}
}
return builder.toString();
}
public class StrCount{
public static void main(String []args){
String str="aaawwrrrvfuuk";
String str2="";
int n=0;
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
if(i==0){
str2=""+c;
}
if(c==str2.charAt(str2.length()-1)){
n++;
}
else{
if(n>1)
str2=str2+n;
str2=str2+c;
n=1;
}
}
System.out.println(str2);
}
}
public class sample{
public static void main(String[] args) {
String input = "aaahhrrrvfuuk";
char prevChar = '\0';
int count = 1;
for (int i = 0; i < input.length(); i++) {
if (i == 0) {
System.out.print(input.charAt(i));
} else {
if (input.charAt(i) == prevChar) {
count++;
} else {
if (count > 0) {
System.out.print(count);
count = 0;
}
System.out.print(input.charAt(i));
}
}
prevChar = input.charAt(i);
}
}
}
public class Collection1 {
public static void main(String[] args) {
String input = "aaahhrrrvfuuk";
char prevChar = '\0';
int count = 1;
for (int i = 0; i < input.length(); i++) {
if (i == 0) {
System.out.print(input.charAt(i));
} else {
if (input.charAt(i) == prevChar) {
count++;
} else {
if (count > 0) {
System.out.print(count);
count = 0;
}
System.out.print(input.charAt(i));
}
}
prevChar = input.charAt(i);
}
}
}
public static void main(String[] args) {
String s = "aaahhrrrvfuuk";
Stack<String> st = new Stack<String>();
int cnt = 1;
st.push(s.charAt(0)+"");
for (int i = 1; i < s.length(); i++) {
String c = s.charAt(i)+"";
if(!st.peek().equals(c)) {
if(cnt > 1) {
st.push(String.valueOf(cnt));
cnt = 1;
}
st.push(c);
}
else {
cnt++;
}
}
StringBuilder res = new StringBuilder();
for (String string : st) {
res.append(string);
}
System.out.println(res);
}
{{
- Gee March 03, 2015public String processedString(String input) {
if (input == null || input == "") return null;
String output = "";
int counter = 1;
char prevLetter = input.charAt(0);
char curLetter = 0;
for(int i = 1; i < input.length(); i++) {
curLetter = input.charAt(i);
if (curLetter == prevLetter) {
counter++;
} else {
output += prevLetter;
output += String.valueOf(counter);
prevLetter = curLetter;
counter = 1;
}
}
// last letter
output += curLetter;
output += String.valueOf(counter);
return output;
}
}}