953. Verifying an Alien Dictionary

解法一

思路

这道题想法比较直白,按给定的字符排序来判断字符串数组的元素是否按字典顺序排序。那么只要将前后字符的同个位置元素按字典比较即可。而且只需比较到较短的那个字符串长度为止。如果前一单词 i 位置字符小于后一单词 i 位置字符,那么直接比较下一组单词。 如果大于,就返回false; 如果相等,则继续比较下一个位置。还有一种情况是,前n个位置的字符都相等,那么较长的字符应该排在后面。比如"apple"应该排在"app"后面。

class Solution {
    public boolean isAlienSorted(String[] words, String order) {
        HashMap<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < order.length(); i++) {
            map.put(order.charAt(i), i);
        }

        loop:
        for (int  i = 0; i < words.length - 1; i++) {
            String word1 = words[i];
            String word2 = words[i+1];
            int len = Math.min(word1.length(), word2.length());

            if (word1.substring(0,len).equals(word2.substring(0,len))) {
                if (word1.length() > word2.length()) {
                    return false;
                }
                else {
                    continue loop;
                }
            }
            else
            {
                    for (int j = 0; j < len; j++) {
                    int order1 = map.get(word1.charAt(j));
                    int order2 = map.get(word2.charAt(j));
                    if (order1 > order2) {
                        return false;
                    }
                    else if (order1 < order2) {
                        continue loop;
                    }
                }
            }
        }
        return true;
    }
    }
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!