我们有一个语言X,它有一个字节和两个字节的字符.该语言具有以下特征.
问题是,我们得到一个任意长度的字符串和指向字符串中某个字节的指针,我们必须找出前一个字符是什么,下一个字符是什么.
一个简单的方法是从字符串的开头开始,检查字节的值并比较指针直到我们到达给定的指针.但在最坏的情况下,如果给定指针指向给定字符串中的最后一个字节,我们必须循环遍历所有字符.
我想知道是否有更好的算法可以在不考虑字符串长度的情况下以恒定时间给出结果?
我想如何在像Haskell这样的函数式编程语言中实现生产者/消费者?以及它与命令式语言有何不同?我对函数式编程语言的理解是原始的.任何帮助将不胜感激.
我有以下xml文件,为我们的网站生成菜单.
<xs:element name="Menu">
<xs:complexType>
<xs:sequence>
<xs:element name="MenuItem" type="MenuItemType" maxOccurs="unbounded"></xs:element>
</xs:sequence>
<xs:attribute name="Title" type="xs:string"></xs:attribute>
<xs:attribute name="Type" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:complexType name="MenuItemType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="MenuItem" type="MenuItemType" />
</xs:choice>
<xs:attribute name="Text" type="xs:string"></xs:attribute>
<xs:attribute name="Url" type="xs:string"></xs:attribute>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
现在我使用xmlserializer将这些xml文件转换为Menu对象,并使用它们生成菜单.我想使用LINQ to xml将这些xml文件转换为同一个对象.任何帮助将不胜感激.上面的xml文件的生成类是
public partial class Menu {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("MenuItem")]
public MenuItemType[] MenuItem;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Title;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Type;
}
public partial class MenuItemType {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("MenuItem")]
public MenuItemType[] Items;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Text;
/// …Run Code Online (Sandbox Code Playgroud)