数学建模社区-数学中国

标题: 953. 验证外星语词典 [打印本页]

作者: 杨利霞    时间: 2019-4-19 21:45
标题: 953. 验证外星语词典
953. 验证外星语词典

1 c+ I! f+ O* ?, O' Y" z7 S1 f! ~/ j2 l- L. h+ L
解题思路:根据题目要求,比较两个相邻字母是否按照order排序;创建(map)letter_orders,记录字典顺序;0 Q/ c) B0 @* }* p0 l0 q+ _
比较即可4 |3 f' E7 O$ O
- ]# x0 j* A' V9 {0 h
class Solution {
9 O! t; F9 G- P5 |3 M' r+ l! K6 Wpublic:) P) s- m- R+ O9 \; R
        bool isAlienSorted(vector<string>& words, string order)4 `$ t# c. g% F' C# z7 L2 ^
        {: n6 q  c3 l* x; c& z4 r
                int min_letter_length = words[0].length();# ]4 {0 G$ S# I( A; r" c5 w6 e
                map<char, int> letter_orders;
8 H3 w/ ?4 l9 ?/ Z/ [6 D                letter_orders[' '] = 0;//空字符比其他字符都小记为0- |( H/ M; f: Q* F& F
                for (int i = 0; i < order.length(); i++)
( Q% M. r( Y  j2 E                {6 y2 a# O9 }2 L
                        letter_orders[order] = i + 1;, n3 {/ `  [* y' t
                }. Y+ d, N3 A( s4 w! u$ A. ?
                for (int i = 0; i < words.size() - 1; i++)
: _7 J! k4 ?2 J* }+ y: z# y                {
6 T6 x% f) O* y; `/ P# ]* |                        if (!check(words, words[i + 1], letter_orders))
7 a$ j' W* u6 t5 c  P# A                                return false;
9 u  ^5 Y) _% y0 V3 g7 z1 X% P' V                }4 s7 E' G" _. D+ C" y. `! K8 z+ e
                return true;
0 M' j* l, w" o/ J: ]: C, c+ b" B        }
* Y! g% B/ _% @7 Q5 f0 K* V        bool check(string a, string b, map<char, int>letter_orders)
" G/ J* E3 }# [* z  Z) f6 R        {
0 y9 {( a& e. _4 @7 u                int sign = -1;' |8 i& F$ U9 f9 n8 s5 |6 h
                for (int i = 0; i < a.length(); i++)
) P9 y3 g, K' W& X+ T5 t7 E9 `                {3 N, z, B' a5 V) p3 O" w: {
                        if (letter_orders[a] < letter_orders[b]), R. h% p( [+ R; Q1 g0 d
                        {8 K( d4 a: m2 @+ Y+ \; n
                                return true;
: w* b3 x: @' h! k" q. g3 T                        }
1 ^# {& N6 w0 m( c$ ~# V6 N                        else if (letter_orders[a] > letter_orders[b])0 _0 g2 n1 N4 g
                        {
* l: O4 L$ ^6 L; B                                return false;
  _" i; {0 W' V# u$ B  X* \) m% |6 I                        }
* z( z" M3 ~3 V) K; ^( \1 ]7 w* l6 W                }
  E$ J8 K$ _9 T. O                return true;
) x1 y/ O9 g3 [& t. y$ |        }( p$ r& t' _" ^# ?) G8 g
};0 ]0 |+ [' u# f7 m- c1 T1 g
---------------------
2 p9 p! t, Q- G3 b8 C& N9 U" ]( n! A: q% X: @5 B4 ?) Z' K

9 o; k: Q  D8 ^/ A& @1 v& S3 {9 q# w/ Q3 G3 D6 F# h6 v/ T
% H/ X3 I- A7 e* w# z) o

作者: 3297325025    时间: 2019-4-23 23:55
你好可以请问一下order排序是自己设计吗,还有数据库从哪里找
) Q3 `) x$ k+ [8 H




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5