Leetcode Weekly Contest 12

  1. Number of Segments in a String
    • 很简单的一道题。我竟然把int count 声明为bool count,每次加1,cout都是1.哈哈
  2. Convex Polygon
    • 定理。逆时针看,P1,P2,P3组成的边,P1P2,P2P3,都是由P1P2逆时针得到的P2P3,出现顺时针得到的P2P3,就不是凸多边形。
    • 两个向量是逆时针还是顺时针,使用叉乘。 P X Q = x1 y2 - x2 y1. > 0, 则P 在Q的顺时针方向, 小于0, 则P在Q的逆时针方向, 等于0,则两者共线。
    • 反之,如果从顺时针看多边形,结果又相反了。所以,应该遍历一遍节点,看看所有相邻之边的叉乘,符号是否一致,有不一致的地方,就是凹多边形。
    • 常见凸多边形的判断方法
  3. Unique Substrings in Wraparound String
    • hash思想:仔细观察母字符串,其子字符串是有规律的。字母x后面的字母一定是(x + 1) % 26.
    • 我们遍历字母x,看看其后续多少个字母符合母串的要求。
    • 26个字母,每个字母记录其所对应的最长后缀
  4. Count The Repetitions