Twilio

SMS splitting


public class Main {
    public static void main(String[] args) {
        String message = "njdksjfn jdfnds kjfdklsjf jsdofjsd f jdslkjfgdslkngdslkjg fljksdjflsfdsjfdslkfjdslkfmdsklmfgn ljsdglkdsfg d lkjgdslkgjdsljgdslkjgdsfjngds lkjsdlkgjdsgkldsjgsdlkg lkjdslkgjdslkgjdslgmnds glkjgdslkjgdslkjfgodsjfds g,mdsgkjdsngdlsknfgldsjfglkdsjfglkdsjglkdsjglkdsgjdsklgjdslk lkgjdslkgfjdslkgjdslkgjdsljfgdslkgjmdslkg kljghjdslkjgdslkjfg";
        List<String> ans = segments(message);
        for(String s : ans){
            System.out.println(s);
            System.out.println(" ");
        }
    }
    public static List<String> segments(String message) {
        return getSplits(message);
    }
    public static List<String> getSplits(String message){
        List<String> result = new ArrayList<>();
        if (message.length() < 160) {
            result.add(message);
            return result;
        }
 
        int maxlen = 154;
        int s = 0, e = s + maxlen;
        while (e < message.length()) {
            while (e >= s && message.charAt(e) != ' ' && message.charAt(e + 1) != ' ') {
                e--;
            }
            result.add(message.substring(s, e+ 1));
            s = e + 1;
            e = s + maxlen;
        }
        result.add(message.substring(s, message.length()));
        for (int i = 0; i < result.size(); i++) {
            result.set(i, result.get(i).trim()+"(" + (i + 1) + "/" + (result.size()) + ")");
        }
        return result;
    }
}

Product Sort

class Pair{
    int value;
    int freq;
    public Pair(int value, int freq){
        this.value = value;
        this.freq = freq;
    }
}
public class Main {
    public static void main(String[] args) {
        int[] nums1 = {4,5,6,5,4,3};
        int[] nums2 = {8,5,5,5,5,1,1,1,4,4};        
        System.out.println(Arrays.toString(solve(nums1)));
        System.out.println(Arrays.toString(solve(nums2)));
    }   

    private static int[] solve(int[] nums) {
        HashMap<Integer, Integer> count = new HashMap<>();
        for(int n : nums){
            count.put(n, count.getOrDefault(n, 0) + 1);
        }
        PriorityQueue<Pair> minHeap = new PriorityQueue<>(new Comparator<Pair>(){
            public int compare(Pair a, Pair b){
                if(a.freq == b.freq){
                    return a.value - b.value;
                }
                return a.freq - b.freq;
            }
        });
        for(int n : nums){
            Pair p = new Pair(n, count.get(n));
            minHeap.offer(p);
        }
        int[] ans = new int[nums.length];
        int i = 0;
        while(!minHeap.isEmpty()) ans[i++] = minHeap.poll().value;
        return ans;
     }
}


Vanity Number Search

// "static void main" must be defined in a public class.
public class Main {
    public static void main(String[] args) {
        Map<Character, Character>map = new HashMap<>();
        map.put('A', '2');
        map.put('B', '2');
        map.put('C', '2');
        map.put('D', '3');
        map.put('E', '3');
        map.put('F', '3');
        map.put('G', '4');
        map.put('H', '4');
        map.put('I', '4');
        map.put('J', '5');
        map.put('K', '5');
        map.put('L', '5');
        map.put('M', '6');
        map.put('N', '6');
        map.put('O', '6');
        map.put('P', '7');
        map.put('Q', '7');
        map.put('R', '7');
        map.put('S', '7');
        map.put('T', '8');
        map.put('U', '8');
        map.put('V', '8');
        map.put('W', '9');
        map.put('X', '9');
        map.put('Y', '9');
        map.put('Z', '9');
        List<String> name = Arrays.asList("TWLO", "CODE", "HTCH");
        List<String> nameToNum = new ArrayList<>();
        for(int i = 0; i< name.size(); i++){
            String curr = name.get(i);
            StringBuilder sb = new StringBuilder();
            for(int j = 0; j< curr.length(); j++){
                sb.append(map.get(curr.charAt(j)));
            }
            nameToNum.add(sb.toString());
        }
        List<String> numbers = Arrays.asList("+17474824380", "+14157088956", "+919810155555", "+15109926333", "+1415123456");
        List<String> ans = new ArrayList<>();
        for(int i = 0; i< nameToNum.size(); i++){
            ans.addAll(findMatch(nameToNum.get(i), numbers));
        }
        Collections.sort(ans);
        for(String s : ans){
            System.out.println(s);
        }
    }
    
    public static Set<String> findMatch(String find, List<String> numbers){
        Set<String> result = new HashSet<>();
        for(int i = 0; i < numbers.size(); i++) {
            if(numbers.get(i).contains(find)) {
                result.add(numbers.get(i));
            }
        }
        return result;
    }
}





©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。