cpeeyush
BAN USERpublic class SortArray {
public static void main(String[] args) {
String[] input = new String[] { "Luis", "Hector", "Selena", "Emmanuel", "Amish", "Pie", "Rat"};
String[] result = new String[input.length];
Set<Character> set = new HashSet<Character>();
Map<Character, String> map = new HashMap<Character, String>();
// All start char in set.
for (String s : input) {
char[] ch = s.toLowerCase().toCharArray();
set.add(ch[0]);
map.put(ch[ch.length - 1], s);
}
String lastWord = null;
// Trying to find a string whose end char doesn't start a new string.So
// that should be last.
for (String s : input) {
char[] ch = s.toLowerCase().toCharArray();
if (!set.contains(ch[ch.length - 1])) {
lastWord = s;
break;
}
}
result[result.length - 1] = lastWord;
for (int i = result.length - 2; i >= 0; i--) {
result[i] = map.get(result[i + 1].toLowerCase().toCharArray()[0]);
}
// Output
for (String s : result) {
System.out.println(s);
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
public class CharacterHistogram {
static class CharCount implements Comparable<CharCount> {
private char c;
private int count;
@Override
public int compareTo(CharCount o) {
return o.count - this.count;
}
}
public static void main(String[] args) {
List<String> input = new ArrayList<String>();
input.add("abactor");
input.add("abaculus");
input.add("abacus");
input.add("Abadite");
input.add("Zyrenian");
Map<Character, CharCount> map = new TreeMap<Character, CharCount>();
List<CharCount> list = new ArrayList<CharCount>();
for (String str : input) {
char[] ch = str.toCharArray();
for (char c : ch) {
CharCount obj = null;
if (map.get(c) == null) {
obj = new CharacterHistogram.CharCount();
obj.c = c;
obj.count = 1;
map.put(c, obj);
} else {
obj = map.get(c);
obj.count = obj.count + 1;
map.put(c, obj);
}
}
}
System.out.println("Based On Character Sorting Order:");
for (Entry<Character, CharCount> e : map.entrySet()) {
for (int i = 0; i < e.getValue().count; i++) {
System.out.print("*");
}
System.out.println(":"+e.getKey());
list.add(e.getValue());
}
System.out.println("Based On Character Count:");
Collections.sort(list);
for(CharCount c : list){
for (int i = 0; i < c.count; i++) {
System.out.print("*");
}
System.out.println(":"+c.c);
}
}
}
public class SmartSubstring {
public static String smartSub(String s, int start, int end) {
if (start != 0) {
if (s.charAt(start) != ' ' || s.charAt(start - 1) != ' ') {
while (start < end) {
if (s.charAt(start) == ' ') {
break;
}
start++;
}
start = start + 1;
}
}
if (end != (s.length() - 1)) {
if (s.charAt(end) != ' ' || s.charAt(end + 1) != ' ') {
while (start < end) {
if (s.charAt(end) == ' ') {
break;
}
end--;
}
}
}
if (end >= start) {
return s.substring(start, end);
} else {
return null;
}
}
public static void main(String[] args) {
String s = "Featuring stylish rooms and moorings for recreation boats, Room Mate Aitana is a designer hotel built in 2013 on an island in the IJ River in Amsterdam.";
int start = 0;
int end = 30;
System.out.println("Smart SubString:" + smartSub(s, start, end));
System.out.println("Default SubString:" + s.substring(start, end));
}
}
- cpeeyush December 18, 2016