Program Listing for File SubsequenceProblems.h
↰ Return to documentation for file (ADS/string/SubsequenceProblems.h)
/*--------------------------------------------------------------------------*/
/*----------------------- File SubsequenceProblems.h -----------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_SubsequenceProblems
#define __ADS_SubsequenceProblems
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/Contract.h"
#include "ADS/string/LongestCommonSubsequence.h"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <string>
#include <type_traits>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
template< class S > requires std::is_class_v< S >
[[nodiscard]] bool isInterleaving( const S & X , const S & Y , const S & Z );
[[nodiscard]] inline bool isInterleaving( const std::string & X ,
const std::string & Y ,
const std::string & Z );
template< class S > requires std::is_class_v< S >
[[nodiscard]] std::size_t scsLength( const S & X , const S & Y );
[[nodiscard]] inline std::size_t scsLength( const std::string & X ,
const std::string & Y );
template< class S > requires std::is_class_v< S >
[[nodiscard]] S shortestCommonSupersequence( const S & X , const S & Y );
[[nodiscard]] inline std::string shortestCommonSupersequence(
const std::string & X , const std::string & Y );
template< class S > requires std::is_class_v< S >
[[nodiscard]] std::uint64_t subsequenceOccurrences( const S & P ,
const S & T );
[[nodiscard]] inline std::uint64_t subsequenceOccurrences(
const std::string & P , const std::string & T );
template< class S > requires std::is_class_v< S >
[[nodiscard]] S lcs3( const S & X , const S & Y , const S & Z );
[[nodiscard]] inline std::string lcs3( const std::string & X ,
const std::string & Y ,
const std::string & Z );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/string/impl/SubsequenceProblems.tpp"
/*--------------------------------------------------------------------------*/
#endif /* SubsequenceProblems.h included */
/*--------------------------------------------------------------------------*/
/*--------------------- End File SubsequenceProblems.h ---------------------*/
/*--------------------------------------------------------------------------*/