这更像是一个难题而不是编码问题.我需要找到可以生成满足某些约束的二进制数.输入是
(integer) Len - Number of digits in the binary number
(integer) x
(integer) y
Run Code Online (Sandbox Code Playgroud)
二进制数必须是这样的,从二进制数中取任何x个相邻数字应该至少包含y 1.
例如 -
Len = 6,x = 3,y = 2
0 1 1 0 1 1 - 长度为6,从中获取任意3个相邻数字,将有2个数字
我在面试中向我提出了这个C#编码问题,我无法弄清楚任何算法来解决这个问题.不寻找代码(尽管欢迎它),任何形式的帮助,指针都很受欢迎
我已经在https://github.com/OData/ODataSamples/tree/master/WebApi/v4/DynamicEdmModelCreation看到了动态 Odata 路由和模型生成的示例。
我需要同样的点网核心,但由于 Asp.net 和 Asp.net 核心在类/路由等方面有所不同。我无法将此代码转换为点网核心。
有人可以提供一些指导吗?
我的 Startup.cs 配置方法有这个 -
IEdmModel model = this.GetEdmModel(app.ApplicationServices);
IList<IODataRoutingConvention> routingConventions = new List<IODataRoutingConvention>();
routingConventions.Insert(0, new MatchAllRoutingConvention());
app.UseMvc(routeBuilder => routeBuilder.MapODataServiceRoute("odata", "odata", model, new CustomPathHandler(), routingConventions));
Run Code Online (Sandbox Code Playgroud)
CustomPathHandler.cs -
public class CustomPathHandler : DefaultODataPathHandler
{
public override ODataPath Parse(string serviceRoot, string odataPath, IServiceProvider requestContainer)
{
var path = base.Parse(serviceRoot, odataPath, requestContainer);
return path;
}
public override string Link(ODataPath path)
{
return base.Link(path);
}
}
Run Code Online (Sandbox Code Playgroud)
ODataEndpointController.cs -
public class ODataEndpointController : ODataController
{ …Run Code Online (Sandbox Code Playgroud)