数学建模社区-数学中国

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

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

+ S5 u% {( Y; U: @( |" U6 t2 u# E) P4 V4 S, D" _/ E
解题思路:根据题目要求,比较两个相邻字母是否按照order排序;创建(map)letter_orders,记录字典顺序;
! U, C5 k% s. y" C4 W; R比较即可8 H$ Q% v7 R  M4 N3 P) f
( \9 k6 ]8 R( n! X- c; h
class Solution {
  ^5 I2 k/ o+ j7 Kpublic:
1 @% V  B4 S( z4 y5 U        bool isAlienSorted(vector<string>& words, string order): A1 d! n$ _: P6 L* T
        {  |, m$ j1 f4 y4 _2 v  L
                int min_letter_length = words[0].length();- q& x/ g/ v( l) K$ N; J
                map<char, int> letter_orders;
: D, `# w1 c+ C                letter_orders[' '] = 0;//空字符比其他字符都小记为0
3 Q( N8 d4 K# U/ r, R* h                for (int i = 0; i < order.length(); i++)/ o% g, V  J" [2 ~
                {
/ c1 T6 E, R5 H% R: q                        letter_orders[order] = i + 1;, q5 y& J7 R$ s. f
                }  M5 B5 x! f) f
                for (int i = 0; i < words.size() - 1; i++)
/ f  R+ y4 A/ |5 P2 ]                {6 A8 Q" T. s4 O0 j0 U' Y
                        if (!check(words, words[i + 1], letter_orders))
) }" ]* V# y5 W: L* D, u' q% F1 f                                return false;
7 I' G* }0 {7 x                }  r9 [( q* V( |
                return true;6 l( a. h0 o2 l
        }
8 l$ s8 \3 c* N. o. G$ p4 D        bool check(string a, string b, map<char, int>letter_orders)
& y) _" x/ c3 a8 g; E: U! G; X        {+ ]* H0 h5 G' R6 K
                int sign = -1;
) d: v" A# F9 p2 N1 c! a                for (int i = 0; i < a.length(); i++)
) n8 K% f! Z& w! R3 P7 T+ s( I                {4 M& S% `6 M$ T) k% U
                        if (letter_orders[a] < letter_orders[b])
9 L: F1 r. O3 K+ a$ @                        {
, C% N, d- |) y7 _  W                                return true;3 X+ \8 k& W0 y" W" F/ p5 g$ j
                        }
3 \9 `. i7 I0 Y. H/ m                        else if (letter_orders[a] > letter_orders[b])
9 G: ?! q; @- k7 D9 C/ S7 X                        {
4 Q* T2 Q" T8 @                                return false;: ^$ `4 s6 x3 d# G5 [
                        }7 j, V# [. `9 S* r
                }% i7 m/ |8 c5 g+ `/ ?6 \8 K
                return true;2 `. w' k) ~0 i( J$ T. C8 p+ V# w
        }5 _7 @3 Y' }% Q% S
};
* |* f& R1 p6 t$ d* N--------------------- . S7 O3 J: r' x" p5 b2 [. }

$ w. ]# _1 d* ]8 w0 b! V. s( q  q) g' r1 s1 A

! w5 U: h9 d% t' P: N
+ }# x: w. z; G1 x) h
作者: 3297325025    时间: 2019-4-23 23:55
你好可以请问一下order排序是自己设计吗,还有数据库从哪里找( A; e  {3 h; P# U: G+ R0 q  a- c) w6 A





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