全新题目
【题目难度 | 中等】※※※
【编程题目 |200分】最长方连续方波信号【2022 Q2考试题 2023 Q2考试题 B卷】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
输入一串方波信号,求取最长的完全连续交替方波信号,并将其输出,如果有相同长度的交替方波信号,输出任一即可,
方波信号高位用1标识,低位用0标识,如图:
说明:
1) 一个完整的信号一定以0开始然后以0结尾,即010是一个完整信号,但101,1010,0101不是
2)输入的一串方波信号是由一个或多个完整信号组成
3) 两个相邻信号之间可能有0个或多个低位,如0110010,011000010
4) 同一个信号中可以有连续的高位,如01110101011110001010,前14位是一个具有连续高位的信号
5) 完全连续交替方波是指10交替,如01010是完全连续交替方波,0110不是
输入描述
输入信号字符串(长度 >= 3 且 <= 1024):
0010101010110000101000010
注:输入总是合法的,不用考虑异常情况
输出描述
输出最长的完全连续交替方波信号串:01010
若不存在完全连续交替方波信号串,输出 -1。
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
00101010101100001010010
输出
01010
代码实现
Golang
package main import ( "bufio" "fmt" "os" "strings" )
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看C++解法一
#include <bits/stdc++.h> using namespace std; int maxLength = 0x80000000; string res; // 00101010101100001010010 class Solution { public: string ElectricalSignal(string &input)
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看C++解法二
#include<bits/stdc++.h> using namespace std;
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.Scanner; public class ElectricalSignal { private static int maxLength = Integer.MIN_VALUE; private static String res; public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); if (input.contains("00")) { String[] split = input.split("00");
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.*; public class ElectricalSignal { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine();
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看Python
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JavaScript
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看