我正在编写一个算法,它将首先采用各种端点的配置文件及其相关方法,如下所示:
/guest guestEndpoint
/guest/lists listEndpoint
/guest/friends guestFriendsEndpoint
/guest/X/friends guetFriendsEndpoint
/guest/X/friends/X guestFriendsEndpoint
/X/guest guestEndpoint
/X/lists listEndpoint
/options optionsEndpoint
X这里代表一个通配符,所以任何字符串都可以匹配。该算法会将其作为输入并构建一棵树,其中每个节点代表/'s 之间的一个标记。每个叶子都是一个有效的端点。
然后当用户传入类似guest/abc/friends它会从根开始遍历树的东西时,然后查找guest连接到根的节点,如果存在则转到节点guest,如果guest这里来宾将有一个wildcard节点,那么如果abc不匹配任何ofguest的节点,但存在一个wildcard节点,它将转到wildcard. 然后它会查看wildcard它是否有一个friends节点,如果有就去那里。然后如果friends是叶节点,它将返回相应的方法。
这个算法有意义吗?我想知道查找的运行时间是什么。我认为这将是 O(n) 其中 n 是传入的参数中的令牌数。
这是我将根据上面的输入构建的图表的图像。每个菱形代表一个端点方法。

谢谢你的帮助!