多个网站一个域名网站在百度搜索不到
2026/2/15 18:30:11 网站建设 项目流程
多个网站一个域名,网站在百度搜索不到,环保公司网站模板,重庆网站建设策划题目描述 输入一串方波信号#xff0c;求取最长的完全连续交替方波信号#xff0c;并将其输出#xff0c;如果有相同长度的交替方波信号#xff0c;输出任一即可。方波信号高位用1标识#xff0c;低位用0标识 。 说明#xff1a; 一个完整的信号一定以0开始然后以0结尾…题目描述输入一串方波信号求取最长的完全连续交替方波信号并将其输出如果有相同长度的交替方波信号输出任一即可。方波信号高位用1标识低位用0标识 。说明一个完整的信号一定以0开始然后以0结尾即010是一个完整信号但10110100101不是输入的一串方波信号是由一个或多个完整信号组成两个相邻信号之间可能有0个或多个低位如0110010011000010同一个信号中可以有连续的高位如01110101011110001010前14位是一个具有连续高位的信号完全连续交替方波是指10交替如01010是完全连续交替方波0110不是输入输入信号字符串长度 3 且 1024例如0010101010110000101000010注输入总是合法的不用考虑异常情况输出输出最长的完全连续交替方波信号串例如01010若不存在完全连续交替方波信号串输出 -1。示例一输入00101010101100001010010输出01010说明输入信号串中有三个信号0 010101010110(第一个信号段)00 01010(第二个信号段)010(第三个信号段)第一个信号虽然有交替的方波信号段但出现了11部分的连续高位不算完全连续交替方波在剩下的连续方波信号串中01010最长解题思路题目要求处理一串由0和1组成的方波信号字符串从中找出最长的“完全连续交替方波”信号并输出该信号。如果有多个相同长度的完全连续交替方波信号则输出任意一个。如果不存在符合要求的信号串则输出-1。完全连续交替方波的定义必须以0开头以0结尾。中间部分必须是1和0严格交替的形式例如01001010等。例如01010是一个完全连续交替方波而0110和101则不是。Javaimport java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { Scanner scanner new Scanner(System.in); String signal scanner.nextLine(); // 输入信号字符串 Pattern pattern Pattern.compile(^(01)0$); // 定义正则表达式匹配完全连续交替方波信号 int maxLength 0; // 最长完全连续交替方波信号的长度 String result -1; // 最长完全连续交替方波信号的字符串 StringBuilder sb new StringBuilder(); // 用于存储当前处理的信号 for (char c : signal.toCharArray()) { if (c 0 sb.length() 0 sb.charAt(sb.length() - 1) 0) { // 当前字符是0且前一个字符也是0说明一个完整信号结束 Matcher matcher pattern.matcher(sb.toString()); // 对当前信号进行匹配 if (matcher.find() sb.length() maxLength) { // 如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 maxLength sb.length(); // 更新最大长度 result sb.toString(); // 更新最大长度对应的字符串 } sb.setLength(0); // 清空当前信号 } sb.append(c); // 将当前字符加入当前信号 } Matcher matcher pattern.matcher(sb.toString()); // 对最后一个信号进行匹配 if (matcher.find() sb.length() maxLength) { // 如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 result sb.toString(); // 更新最大长度对应的字符串 } System.out.println(result); // 输出最长的完全连续交替方波信号串 } }Pythonimport re signal input() # 输入信号字符串 pattern re.compile(^(01)0$) # 定义正则表达式匹配完全连续交替方波信号 maxLength 0 # 最长完全连续交替方波信号的长度 result -1 # 最长完全连续交替方波信号的字符串 sb # 用于存储当前处理的信号 for c in signal: if c 0 and len(sb) 0 and sb[-1] 0: # 当前字符是0且前一个字符也是0说明一个完整信号结束 matcher pattern.match(sb) # 对当前信号进行匹配 if matcher and len(sb) maxLength: # 如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 maxLength len(sb) # 更新最大长度 result sb # 更新最大长度对应的字符串 sb # 清空当前信号 sb c # 将当前字符加入当前信号 matcher pattern.match(sb) # 对最后一个信号进行匹配 if matcher and len(sb) maxLength: # 如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 result sb # 更新最大长度对应的字符串 print(result) # 输出最长的完全连续交替方波信号串JavaScriptconst readline require(readline); const rl readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on(line, (signal) { const pattern /^(01)0$/; // 定义正则表达式匹配完全连续交替方波信号 let maxLength 0; // 最长完全连续交替方波信号的长度 let result -1; // 最长完全连续交替方波信号的字符串 let sb ; // 用于存储当前处理的信号 for (let i 0; i signal.length; i) { const c signal.charAt(i); if (c 0 sb.length 0 sb.charAt(sb.length - 1) 0) { // 当前字符是0且前一个字符也是0说明一个完整信号结束 const matcher sb.match(pattern); // 对当前信号进行匹配 if (matcher sb.length maxLength) { // 如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 maxLength sb.length; // 更新最大长度 result sb; // 更新最大长度对应的字符串 } sb ; // 清空当前信号 } sb c; // 将当前字符加入当前信号 } const matcher sb.match(pattern); // 对最后一个信号进行匹配 if (matcher sb.length maxLength) { // 如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 result sb; // 更新最大长度对应的字符串 } console.log(result); // 输出最长的完全连续交替方波信号串 rl.close(); });C#include iostream #include string #include regex using namespace std; int main() { string signal; getline(cin, signal); // 输入信号字符串 regex pattern(^(01)0$); // 定义正则表达式匹配完全连续交替方波信号 int maxLength 0; // 最长完全连续交替方波信号的长度 string result -1; // 最长完全连续交替方波信号的字符串 string sb; // 用于存储当前处理的信号 for (int i 0; i signal.length(); i) { char c signal[i]; if (c 0 sb.length() 0 sb[sb.length() - 1] 0) { // 当前字符是0且前一个字符也是0说明一个完整信号结束 smatch matcher; // 定义匹配结果 if (regex_match(sb, matcher, pattern) sb.length() maxLength) { // 对当前信号进行匹配如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 maxLength sb.length(); // 更新最大长度 result sb; // 更新最大长度对应的字符串 } sb ; // 清空当前信号 } sb c; // 将当前字符加入当前信号 } smatch matcher; // 对最后一个信号进行匹配 if (regex_match(sb, matcher, pattern) sb.length() maxLength) { // 如果匹配到完全连续交替方波信号并且长度大于之前的最大长度 result sb; // 更新最大长度对应的字符串 } cout result endl; // 输出最长的完全连续交替方波信号串 return 0; }C语言#include stdio.h #include string.h #include stdbool.h // 检查字符串是否匹配^(01)0$的模式 bool is_alternating_wave(const char *str) { int len strlen(str); // 如果字符串长度小于3直接返回false if (len 3) { return false; } // 检查字符串是否以01开头并以0结尾中间部分要严格交替 if (str[0] ! 0 || str[len-1] ! 0) { return false; } // 遍历字符串中间部分检查是否严格交替 01 for (int i 1; i len - 1; i) { if (str[i] str[i-1]) { return false; } } return true; } int main() { char signal[1025]; // 输入信号字符串长度最大为1024 fgets(signal, sizeof(signal), stdin); // 从标准输入读取信号字符串 int maxLength 0; // 最长的完全连续交替方波信号的长度 char result[1025] -1; // 最长的完全连续交替方波信号的字符串默认值为 -1 char sb[1025] ; // 用于存储当前处理的信号 int sb_len 0; // 当前信号的长度 int signal_len strlen(signal); // 遍历输入的信号字符串 for (int i 0; i signal_len; i) { char c signal[i]; // 如果遇到两个连续的0说明一个完整信号段结束 if (c 0 sb_len 0 sb[sb_len - 1] 0) { if (is_alternating_wave(sb) sb_len maxLength) { // 如果当前信号是完全连续交替方波并且长度大于之前的最大长度 maxLength sb_len; // 更新最大长度 strcpy(result, sb); // 更新最大长度对应的信号串 } sb[0] \0; // 清空当前信号串 sb_len 0; // 重置当前信号长度 } // 将当前字符加入当前信号串 sb[sb_len] c; sb[sb_len] \0; } // 处理最后一个信号段 if (is_alternating_wave(sb) sb_len maxLength) { strcpy(result, sb); // 更新最大长度对应的信号串 } printf(%s\n, result); // 输出最长的完全连续交替方波信号串 return 0; // 程序结束 }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询