133A - HQ9+

A. HQ9+
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

HQ9+ is a joke programming language which has only four one-character instructions:

  • "H" prints "Hello, World!",
  • "Q" prints the source code of the program itself,
  • "9" prints the lyrics of "99 Bottles of Beer" song,
  • "+" increments the value stored in the internal accumulator.

Instructions "H" and "Q" are case-sensitive and must be uppercase. The characters of the program which are not instructions are ignored.

You are given a program written in HQ9+. You have to figure out whether executing this program will produce any output.

Input

The input will consist of a single line p which will give a program in HQ9+. String p will contain between 1 and 100 characters, inclusive. ASCII-code of each character of p will be between 33 (exclamation mark) and 126 (tilde), inclusive.

Output

Output "YES", if executing the program will produce any output, and "NO" otherwise.

Sample test(s)
input
Hi!
output
YES
input
Codeforces
output
NO
Note

In the first case the program contains only one instruction — "H", which prints "Hello, World!".

In the second case none of the program characters are language instructions.

s=gets.chomp
if s['H']||s['Q']||s['9']
    puts 'YES'
else
    puts 'NO'
end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java加载私钥字符串的示例代码: ```java import java.io.IOException; import java.io.StringReader; import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import org.apache.commons.codec.binary.Base64; import org.bouncycastle.openssl.PEMReader; public class LoadPrivateKeyFromString { public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException { // 私钥字符串 String privateKeyString = "-----BEGIN PRIVATE KEY-----\n" + "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCzOn8XlPzG2J/W\n" + "C2mMfBd6CQcF0CvzZ8BnL3L2J8M6rVq8EHXv5Tc1zRlWbR9z5O3DZwVcGlYs+J2w\n" + "wGJYX1LjEjK1gNlRqZyUzJH7v+7zCzqLQxTnB0nZ3g1e5Hq9QhJ6tQJjB8e9Ih6m\n" + "oRtYK4VJ2jN7+3L5KdWLr1+PzGdJxXK5+Qn0yK0nJ+Vf7+Q1fZ8sK56uNwK7L6Gq\n" + "P9LZVg4w8OrG9JDhQqR7jpmN0nJ2mVQ4iZgRsd/FZ2xG4rXV4GyNeL2T3gmmKqL9\n" + "hjR2w+G2Z0tN+Zd9HNmJ6MD9y2e2FPO3JHaKZqL1xu3U6O9zJNJP6r8o+qgHkDOa\n" + "YSmOD7o3AgMBAAECggEAMOv5y5vTfjQXz1Kx5uJIwDYyqk7tZJU7yeKsX+5fCQwK\n" + "C0pPp7g6b1q5O1mVNTVgkZ9+FcJ9LZLdG7CvE1Zt/D5fHj5rD7v7G7d3+TZnN3Qe\n" + "7vTQhx1r9QX3C8z+7Vr1EVnZKkY5hk9T4E5+o6j6+g5n3Jq8+7v+8VTPdXhBb0L6\n" + "EI6jQe5uGqsy0ajZq4Fv/9lV8hZrZ6jQzpJiWQjUo3u2s0Zu6oW8N5a+8FZQ5JtN\n" + "jnv+3rJ9I5dJxwveZb+VJZLJ6AQRblRiO0U2I2LxWw9+8yN4y5nUx4LEZL0rBEq2\n" + "ZplL7s0k7gG5H6bqZ8jT6ZfpJd5p8rI4r+0cTg4c4QKBgQD9vBl2YtQOYxZ9Mm8A\n" + "6bQXwWz8z3Cx2yQieSg4fIjx2U9L9R5zQrM6GtTJ9zCv8u8N0JQc9+GJ7Za7rp+P\n" + "WzCpJl7qPMAFQ1ZoeW6e3f+ZIvQ3uQBtZ7J9jO+xu4c8H+YXu4XNqOlg8LqWgY8C\n" + "Jm1o7yPbK1/0t+7BwT8L/OSzVQKBgQDG4aJxGKyjyIe2Mv7Kf0wGwQrM7WUuVwQ\n" + "x6B1CJqJpXj0fWV/6qz8xj0VfL8Bw8A8Ck5dPQjxYXVE7Ovz7vX4qX5c4TQ3n/3Y\n" + "oN3o4ZG6Z1Bz4i8/aq4Z3+8UJ9vEmo4c5qEfFb2m3b2b+8p7FkRbXbLwyfP0r+9E\n" + "Hcl8GJ2jN8BsqL9Zt+qJNyHnNQKBgQDvRrQ6oL7E6KoJLwZQMzI1w22s5TQeJ3G\n" + "uN7mVXy9yJ4NCoajZoG6uG1YJj+2FjLj9xTf5g7G2aJX6GtZ0UrZy7Lq4lUlzJQq\n" + "v5nY6CpJz6OiKuV6hXnoV4c3pC0yHq+7yKgFv3y1wM4/5oL/jiAsiHIAP5gN8Cq\n" + "pWl2wW6OuQKBgQDpVWbGcBbT3ul8cUu4sfqCgG1EzZjyVbA1PbZTfzvRnW/wbLj9\n" + "d6Rv0zSgGfLWVfQg7QpuK1CJpRdYlDZn+KXnUoH/m9qY+9Gd4XjQHbJdKo+9OAjS\n" + "1LwRbGZ7F8LXVJ8ZJhQDh7ZnnSvQxnq0L6Lyaq1b3S3h4fpQ+3X6E3b7NQKBgQCU\n" + "jy8LpRcFh6OJ8XeQ9f9vJt7zA7Y3PJa0JzjRc9aCfRwsB1fVpJgOj1ZsKZx4sE2H\n" + "wWwCjT2nWFT7N5X/gHc+Qj4Ggf2gKz0uZc3E4eNNLfh9zqSkkx+H9KtV5N25OvG6\n" + "QJmQjH4ZloX7N+2yjv6C9Xs3KQKBgBn54Y8AYmJb1K0yRz5ZlX1vP8RJZ2pGzL6/\n" + "l2fgk/3aiIrsZKm5tTfJ7M4Xz3sA5wL/5IaGFS3NwEzKjrYQk0P7XQVXVbK5jN6h\n" + "ZKvJmduZP0KAzUyqg6Yg9j3ZZAnuZAzYtX4sB8wU8/qRQfD0h/7IG5lzAoGBAKcM\n" + "mPVzD7jyYJ7lqEj4jmP0ZzFfMYcUQJ5z9H4LQ9KJ5SCVxGXoW8XvqGxV63RvIyUu\n" + "z3JfZxwZvK2GmsCUZfQkqQoYZ0DGLSsJ4P6C9R6Rfz3I2YmZdY0qC0xFl4m9YfFp\n" + "wQJY9LZp2tI27Bz8HGK3KJzX\n" + "-----END PRIVATE KEY-----"; // 将PEM格式的私钥字符串转换为PKCS8EncodedKeySpec格式 PEMReader pemReader = new PEMReader(new StringReader(privateKeyString)); byte[] privateKeyBytes = pemReader.readPemObject().getContent(); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes); // 使用KeyFactory加载私钥 KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey privateKey = keyFactory.generatePrivate(keySpec); System.out.println("Loaded private key: " + privateKey); } } ``` 需要注意的是,上述示例代码使用了Bouncy Castle库,因此需要将其添加到项目依赖中。同时,示例代码还使用了Apache Commons Codec库,用于Base64编解码。如果您的项目中已经包含这些库,则可以直接在代码中使用它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值