消消乐游戏

标题:消消乐游戏 | 时间限制:1秒 | 内存限制:65536K | 语言限制:不限

游戏规则:输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除。

在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束。
输出最终得到的字符串长度。


#include<string>
#include<iostream>
using namespace std;

int main(){
    string str_inp;
    cin >> str_inp;
    int len = str_inp.length();
    for(int index = 0;index < str_inp.length()-1;)
    {
        if(!(str_inp[index]>='a'
        &&str_inp[index]<='z')
        &&!(str_inp[index]>='A'
        &&str_inp[index]<='Z'))
        {
            cout << 0;
            return 0;
        }
        if(str_inp[index]==str_inp[index+1])
        {
            str_inp.erase(index, 2);
            if(index!=0)
            {
                index = index - 1;
            }
        }
        else{
            index = index +1;
        }
    }
    
    printf("%d" , str_inp.length());
    return 0;
}

// 只拿95.4


while True:
    try:
        str_input = input()
        res = list(str_input)
        if str_input.isalpha():
            i = 1
            while True:
                if i >= len(res):
                    break
                elif i > 0 and res[i] == res[i - 1]:
                    res.pop(i)
                    res.pop(i - 1)
                    i -= 2
                i += 1
            print(len(res))
        else:
            print(0)
    except:
        break
// 满分
import java.util.Scanner;
import java.util.Stack;

public class Main {
    public static int getRes(String str) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (!isValid(c)) {
                return 0;
            }
            if ((!stack.empty()) && (stack.peek() == c)) {
                stack.pop();
                continue;
            }
            stack.push(c);
        }
        return stack.size();
    }
    
    private static boolean isValid(char c) {
        if ((c >= 'a' && c <= 'z') || (c >= 'A') && (c <= 'Z')) {
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        int res = getRes(str);
        scan.close();
        System.out.println(res);
    }
}



全部评论

相关推荐

昨天 22:46
门头沟学院 Java
点赞 评论 收藏
分享
饿魔:看到在线简历了吧
点赞 评论 收藏
分享
12-05 18:09
已编辑
广东药科大学 后端工程师
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务